使用RSACryptoServiceProvider加密时如何定义哈希大小?

时间:2013-01-06 19:30:02

标签: c# encryption rsa rsacryptoserviceprovider

  

可能重复:
  Can RSACryptoServiceProvider (.NET’s RSA) use SHA256 for encryption (not signing) instead of SHA1?

使用RSACryptoServiceProvider加密时,默认哈希算法显然是SHA-1。在加密数据时如何定义另一个哈希算法,如SHA-512(使用Encrypt方法)?我没有找到任何与哈希算法相关的属性。

1 个答案:

答案 0 :(得分:2)

RSACryptoServiceProvider只允许您使用SignData() overloads之一设置用于签名的哈希函数。不幸的是,看起来没有任何方法可以在不使用像CLRSecurity project这样的东西的情况下更改OAEP填充使用的哈希值。

如果查看RSACng wrapper,可以设置EncryptionHashAlgorithm属性。默认看起来像是SHA256。请参阅@owelstead在评论中提供的this answer