gpt4 book ai didi

c# - Mono 无法将 SHA1 识别为 RSA 签名的哈希算法

转载 作者:行者123 更新时间:2023-11-30 20:46:28 30 4
gpt4 key购买 nike

我正在尝试将一些代码从 C# 移植到 Mono 以用于 future 的 Linux 项目。

单声道输出此错误:

A System.Security.Cryptography.CryptographyException was thrown; sha1 is an unsupported hash algorithm for RSA signing"

当为 RSA 签名运行或调试此代码时:

byte[] bytesSing = rsa.SignHash(hashValue, "SHA1");

我用 VS2010 检查过,引用资料说它必须是一个字符串,我将其作为“SHA1”传递。这在 Windows 下编译和运行,但在 Mono 下不编译和运行。

这是 Mono 的 source code .

最佳答案

根据您链接的源代码文件,SignHash函数假定您传递的字符串是一个 OID,并尝试在 GetHashNameFromOID 中查找它在它的正上方运行。

Mono documentation支持这一点,将该参数记录为:

The hash algorithm identifier (OID) used to create the hash value of the data.

Microsoft implementation通过X509Utils.NameOrOidToAlg查找参数,它可能接受名称或 OID。

所以要让它工作,你应该能够通过 null在 Mono 版本中,或传递 OID“1.3.14.3.2.26”。

关于c# - Mono 无法将 SHA1 识别为 RSA 签名的哈希算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895308/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com