当我调用CreateSignature时,收到来自以下代码的CryptographicException "Bad Hash.\r\n“。你知道是什么导致了这一切吗?
RSAPKCS1SignatureFormatter RSAFormatter =
new RSAPKCS1SignatureFormatter(new RSACryptoServiceProvider());
RSAFormatter.SetHashAlgorithm("SHA256");
byte[] signedHash = RSAFormatter.CreateSignature(myHash);发布于 2010-07-28 11:48:02
您的代码片段没有显示如何获取myHash,但我猜测它不是一个32字节的数组。来自MSDN
SHA256算法的散列大小为256位。
试着这样定义你的myHash:(这里只是一个丑陋的例子)
// 256 bit hash size
byte[] myHash = { 59,4,248,102,77,97,142,201,
210,12,224,93,25,41,100,197,
210,12,224,93,25,41,100,197,
213,134,130,135, 213,134,130,135};当我使用任何其他大小的散列运行你的代码时,我得到了同样的错误。运行上面定义的数组,256位或32字节,它工作。
发布于 2012-03-15 22:29:19
byte[] bPlainText;
bPlainText = Encoding.UTF8.GetBytes(PlainText);
SHA256 sha256 = new SHA256Managed();
bPlainText=sha256.ComputeHash(bPlainText);https://stackoverflow.com/questions/3349702
复制相似问题