【发布时间】:2013-02-22 15:04:43
【问题描述】:
我有一个奇怪的问题。 在我的代码中,我创建了一个 sha512 哈希算法并用它签署了一些数据。 现在我希望散列的长度为 512 位,但实际上是 128。 我犯了什么错误?
我的代码:
var hashAlgorithm = HashAlgorithm.Create( „SHA512“ );
var signedhHash = rsaCryptoServiceProvider.SignData( plainData, hashAlgorithm );
PS。 我已经从使用以下脚本创建的文件中加载了 RSA 密钥:
makecert -r -n "CN=myCert" -sky exchange -sy 24 -sv myCert.pvk myCert.cer
cert2spc myCert.cer myCert.spc
pvk2pfx -pvk myCert.pvk -spc myCert.spc -pfx myCert.pfx –f
编辑:
我从signedhHash.Length得到长度,等于128。
【问题讨论】:
-
你在哪里计算长度?
-
计算长度?你的意思是这样的:signedhHash.Length (signedhHash.Length is equals to 128)
-
你说“它有 128 位长”,你从哪里得到这个数字?
-
如果你从signedhHash (128 bytes) 得到长度,那么实际上你有1024 bits。你在比较两个不同的东西