可能重复:
RSACryptoServiceProvider(.NET 的 RSA)可以使用 SHA256 进行加密(不是签名)而不是 SHA1 吗?
当RSACryptoServiceProvider
用于加密时,默认的哈希算法显然是SHA-1
. 如何SHA-512
在加密数据时定义另一种哈希算法(使用该Encrypt
方法)?我没有找到与哈希算法相关的任何属性。
可能重复:
RSACryptoServiceProvider(.NET 的 RSA)可以使用 SHA256 进行加密(不是签名)而不是 SHA1 吗?
当RSACryptoServiceProvider
用于加密时,默认的哈希算法显然是SHA-1
. 如何SHA-512
在加密数据时定义另一种哈希算法(使用该Encrypt
方法)?我没有找到与哈希算法相关的任何属性。
RSACryptoServiceProvider 将只允许您通过使用SignData() 重载之一来设置用于签名的哈希函数。不幸的是,在不使用CLRSecurity project之类的东西的情况下,似乎没有任何方法可以更改 OAEP 填充使用的哈希值。
如果您查看RSACng 包装器,您可以设置 EncryptionHashAlgorithm 属性。默认看起来像是 SHA256。请参阅@owelstead 在评论中给出的答案。