我現在正在爲此苦苦掙扎整整一週,希望有人能幫助我。.Net 4.0 C#加載SHA256密鑰時SignatureAlgorithm更改爲SHA1
我需要使用SHA256和xmldsig簽名xml。 爲此,我使用SignedXML類。在研究這個類時,我發現它使用已加載密鑰的SignatureAlgorithm值來確定要使用的散列類型。
無論我如何加載密鑰(通過加載證書文件的cert存儲),它都會將SHA1顯示爲SignatureAlgorithm。 當我查看MMC證書商店中證書的詳細信息時,它將SHA256顯示爲SignatureAlgorithm。
我嘗試了openssl和makecert來生成SHA256證書密鑰,但兩者都將作爲SHA1載入.Net 並且因此signedXml.ComputeSignature();將使用SHA1作爲簽名方法
.net 4.0應該支持SHA256嗎?
看看這裏:http://msdn.microsoft.com/en-us/library/system.security.cryptography.xml.signedinfo .signaturemethod.aspx,它可能只能處理SignedXML中的SHA-1。 – Dustin