为什么我用openssl和golang生成的RSA签名不同?

为什么我用openssl和golang生成的RSA签名不同?,第1张

为什么我用openssl和golang生成的RSA签名不同?

除了helmbert的答案中所

echo
描述的添加的换行符外,OpenSSL
命令还直接对提供的数据进行 *** 作,而Go代码首先使用SHA256对数据进行哈希处理,然后对结果摘要进行签名。
rsautl

要与使用OpenSSL的Go代码执行相同的 *** 作,可以将该

dgst
命令与
-sign
选项一起使用(请注意,我在此处也包含该
-n
选项
echo
):

$ echo -n "Test." | openssl dgst -sha256 -sign private.key -hex52e1cce3810c1a89693cf6965d1035618820a9e3a7b95203d885c4153dc3f7424b98e3ba628a186f1074d672bb59a1c0788a9c2064951ca2326eb1bf8e3e49e9

要采用另一种方法并在不对Go代码进行哈希处理的情况下对原始消息进行签名,可以将参数

0
的值传递
hash
rsa.SignPKCS1v15

indata:= []byte("Test.")s, err := rsa.SignPKCS1v15(nil, privKey, 0, indata)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5125840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存