C# Mono不';无法将SHA1识别为RSA签名的哈希算法
我正在尝试将一些代码从C#移植到Mono,以用于未来的Linux项目 Mono输出此错误:C# Mono不';无法将SHA1识别为RSA签名的哈希算法,c#,mono,.net-3.5,cryptography,sha1,C#,Mono,.net 3.5,Cryptography,Sha1,我正在尝试将一些代码从C#移植到Mono,以用于未来的Linux项目 Mono输出此错误: 引发System.Security.Cryptography.CryptographyException异常;sha1是不受支持的RSA签名哈希算法“ 为RSA签名运行或调试此代码时: byte[] bytesSing = rsa.SignHash(hashValue, "SHA1"); 我使用VS2010进行了检查,参考说明它必须是一个字符串,我将其传递为“SHA1”。它在Windows下编译并运行,
引发System.Security.Cryptography.CryptographyException异常;sha1是不受支持的RSA签名哈希算法“
为RSA签名运行或调试此代码时:
byte[] bytesSing = rsa.SignHash(hashValue, "SHA1");
我使用VS2010进行了检查,参考说明它必须是一个字符串,我将其传递为“SHA1”。它在Windows下编译并运行,但在Mono下不编译或运行
这是Mono的。基于您链接的源代码文件,
SignHash
函数假定您传递的字符串是OID,并尝试在其正上方的GetHashNameFromOID
函数中查找它
支持这一点,将该参数记录为:
用于创建数据哈希值的哈希算法标识符(OID)
通过X509Utils.nameoridtoalg
查找参数,该参数可能接受名称或OID
因此,要使其正常工作,您应该能够在Mono版本中通过
null
,或者通过OID“1.3.14.3.2.26”。非常感谢pmcoltrane!它现在可以完美地工作了!(如何关闭此线程?)@Glas你没有。只有当网站不欢迎提问时,问题才会被关闭。只接受你最喜欢的答案。也许其他人会来发布另一个答案。