.Net使用强名称密钥文件和SHA256进行签名

时间:2016-02-03 14:41:06

标签: .net .net-4.0 sha1 sha256 sha

我们目前使用.Net 4.0框架在Visual Studio中使用SHA1强名称密钥文件对程序集进行签名。我们使用强命名的主要原因是能够使用" InternalsVisibleTo"在我们的集会中。由于SHA1现已弃用,我相信我们应该切换到SHA256。

我曾尝试在.Net 4.0中生成并使用SHA256作为Visual Studio中的强名称密钥文件,但它无法生成一个,尽管我可以通过.Net 4.5创建一个SHA256,然后将其分配给我的.Net 4.0项目当我使用"签署组件"它似乎接受它Visual Studio中的功能。

我的问题是.Net 4.0是否能够正确使用.Net 4.5中生成的SHA256强名称文件?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

创建个人交换文件(* .pfx)有两个选项,

  1. 使用Makecert

    “makecert.exe”-n“CN = Local” - r -pe -a sha256 -len 2048 -cy authority -e 03/03/2017 -sv Local.pvk Local.cer

    “pvk2pfx.exe”-pvk Local.pvk -spc Local.cer -pfx Local.pfx -po MyPassword -sy 24

  2. 使用OpenSSL

    openssl.exe req -x509 -nodes -sha256 -days 3650 -subj“/ CN = Local”-newkey rsa:2048 -keyout Local.key -out Local.crt

    openssl.exe pkcs12 -export -in Local.crt -inkey Local.key -CSP“Microsoft 增强型RSA和AES加密提供程序“-out Local.pfx

  3. OpenSSL是更可靠的方法。