【发布时间】:2021-06-17 09:25:07
【问题描述】:
我目前正在将一些库从 .netstandard2.0 迁移到 .net5.0,并偶然发现了一种我无法真正理解的奇怪行为,即它在 .netstandard2.0 中可以正常工作,但在 .net5.0 中就不行了。我以前从未使用过任何加密代码,所以我可能会错过一些明显的观点。
我能够将我的问题分解为以下几点:
var cpParams = new CspParameters { KeyContainerName = KEY_CONTAINER };
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspParams);
rsa.ImportCspBlob(...);
byte[] signature = rsa.SignData(byteArray, new SHA1CryptoServiceProvider());
var isValid = rsa.VerifyData(byteArray, new SHA1CryptoServiceProvider(), signature)
isValid 显然应该是真的,我们也可以在 .netstandard2.0 中验证。
但是,在迁移到 .net5.0 之后,isValid 为 false。
我做了一些研究,但找不到任何解释。
有人对此有更深入的了解吗?
【问题讨论】:
标签: c# upgrade .net-5 .net-standard-2.0 rsacryptoserviceprovider