c# - 证书SHA1withRSA加密方式.NET Framework和.NET Core计算结果不一致
问题描述
public static string SignatureMessage(string certFileName, string password, byte[] dataTobeSign)
{
byte[] pfxCert = File.ReadAllBytes(certFileName);
SecureString pwd = new SecureString();
char[] pwdCharArray = password.ToCharArray();
for (int i = 0; i < pwdCharArray.Length; i++)
{
pwd.AppendChar(pwdCharArray[i]);
}
X509Certificate2 cert = new X509Certificate2(pfxCert, pwd);
CmsSigner signer = new CmsSigner(cert);
signer.DigestAlgorithm = new Oid("1.3.14.3.2.26", "sha1");
signer.IncludeOption = X509IncludeOption.EndCertOnly;
ContentInfo signedData = new ContentInfo(dataTobeSign);
SignedCms cms = new SignedCms(signedData, true);
cms.ComputeSignature(signer);
byte[] signature = cms.Encode();
return Convert.ToBase64String(signature);
}
我正在 .NET Core 3.1 和 .NET Framework v4.6.1 中尝试这个。
谁能帮我?
上面的代码在上面的环境列表中运行。结果不一样。因此,我无法升级到 .NET Core。
已完成问题重现 dome github 链接在此处输入链接描述
解决方案
推荐阅读
- data-visualization - 画面自定义调色板..任何人都知道为什么这不起作用
- maven - SoapUI Project 在 Jenkins 传递依赖错误中使用 Maven 插件测试执行
- jersey - Jersey/JAX-RS WriterInterceptor 和 HTTP 状态
- c# - C#如何更改set访问器中值字段的类型?
- google-cloud-firestore - 通过python脚本将octetstream转换为json格式
- spring - 为什么我的 MockBeans 和 MockRestServiceServer 在 Spring Boot 中测试 JMS Listener 时没有返回正确的响应
- docker - 如何将此运行 docker 命令转换为 docker-compose?
- python-3.x - Rock,Paper,Scissors作业的意外结果
- pymysql - 两个应用程序的 pymysql 查询问题。自上次连接以来不会查询新插入的数据
- java - 排序 ASC 或 DESC 时,JTable 始终将行组放在首位