当前位置: 首页 > 知识库问答 >
问题:

创建ECDSA DER编码签名

单于奕
2023-03-14

我试图用Java创建一个ECDSA签名。当我在python中创建一个时,它可以在Java中得到很好的验证。但是反之亦然,我得到了一个BadSignatureException,Python使用ECDSA库,Java使用SpongyCastle。

签名的Python实现:

private_key = SigningKey.from_der(PRIVATE_KEY.decode('hex'))
private_key.sign(payload, hashfunc=hashlib.sha256, 
sigencode=sigencode_der).encode('hex'),
verifying_key = VerifyingKey.from_der(public_key.decode('hex'))
return vk.verify(signature.decode('hex'), payload, hashfunc=hashlib.sha256, sigdecode=sigdecode_der)
signature = Signature.getInstance("SHA256withECDSA", "SC");
signature.initSign(this.privateKey);
signature.update(input.getBytes("UTF-8"));
return new String(Hex.encode(signature.sign()));
signature = Signature.getInstance("SHA256withECDSA", "SC");
signature.initVerify(publicKey);
signature.update(input.getBytes("UTF-8"));
return signature.verify(Hex.decode(expectedSignature));

共有1个答案

胡禄
2023-03-14

您可以尝试使用Python的verify_digest()sign_digest()来验证签名,

digest = SHA256.new() 
digest.update((message.encode('utf-8')))

verified = vk.verify_digest(bytes.fromhex(signature), digest.digest())
 类似资料:
  • 我试图使用以下工作流程创建PAdES签名: PDF准备签名,哈希在浏览器中计算 哈希发送到后端 后端形成分离的CAdES签名 分离的CAdES被发送回组装PAdES签名的浏览器 我们有一个PDF签名的工作示例,其工作原理如下: 准备好PDF,并在浏览器中计算哈希值 这很好用。 然而,现在我们在后端使用DSS库,而不是BouncyCastle,因为我们正在尝试创建PAdES签名。因此,DSS lib

  • 我试图遵循下面提到的两个步骤: 1)下载的源代码 https://sourceforge.net/projects/hunspell/files/hyphen/2.8/hyphen-2.8.8.tar.gz/download 连字符-2.8.8$./example~/dev/smc/hyphenation/hi_in/hyph_hi_in.dic~/hi_sample.text 我已经下载并解压缩

  • 是否可以使用存储在Azure密钥库中的X509证书创建RSA-SHA1签名?“不可抵赖证明书” 不幸的是,我不能将哈希算法更改为SHA256或更安全的东西,我真的需要将证书作为密钥存储在Azure Key Vault中。 null

  • 数字签名允许我们验证签名的作者,日期和时间,验证消息内容。 它还包括用于其他功能的身份验证功能。 数字签名的优点 在本节中,我们将了解要求使用数字签名的不同原因。 将数字签名实施到通信有几个原因 - 身份验证 (Authentication) 数字签名有助于验证消息来源。 例如,如果银行的分支机构向中央办公室发送消息,请求更改帐户余额。 如果中央办公室无法验证从授权来源发送的消息,则执行此类请求可

  • Git 可以给历史中的某一个修订版本打上标签,通常我们会使用标签来表示一个版本的发布. 操作步骤: VCS —> Git —>Tag —>弹出创建标签配置窗口 配置介绍: Git Root: 项目地址 Current Branch: 显示当前的分支 Tag Name: 标签名 Force:如果相同的tag名已经存在了,是否强制创建. Commit: 通过输入的修订版本号、tag名来打标签,如果空白

  • 除了签名url,Amazon最近还引入了Cloudfront签名cookie。 关于签名url也有类似的问题。显然,CloudFrontSDK中支持签名url 然而,我在aws python SDK中找不到对该功能的支持。