可能重复:
Can RSACryptoServiceProvider (.NET’s RSA) use SHA256 for encryption (not signing) instead of SHA1?
使用RSACryptoServiceProvider
加密时,默认哈希算法显然是SHA-1
。在加密数据时如何定义另一个哈希算法,如SHA-512
(使用Encrypt
方法)?我没有找到任何与哈希算法相关的属性。
答案 0 :(得分:2)
RSACryptoServiceProvider只允许您使用SignData() overloads之一设置用于签名的哈希函数。不幸的是,看起来没有任何方法可以在不使用像CLRSecurity project这样的东西的情况下更改OAEP填充使用的哈希值。
如果查看RSACng wrapper,可以设置EncryptionHashAlgorithm属性。默认看起来像是SHA256。请参阅@owelstead在评论中提供的this answer。