RSACryptoPad每次都会给出不同的结果

时间:2012-03-20 06:50:25

标签: cryptography rsa

我正在尝试使用RSACryptoPAD示例测试我的RSA实现的正确性:http://www.codeproject.com/Articles/10877/Public-Key-RSA-Encryption-in-C-NET

但它始终会创建不同的加密结果。 RSA不仅仅是模块和电源操作吗?但该程序可以正确解密所有不同的加密文本。我的结果与http://nmichaels.org/rsa.py网站相同。我认为RSACryptoPAD正在做其他一些事情吗?

1 个答案:

答案 0 :(得分:2)

代码使用RSACryptoServiceProvider。这条线

  byte[] encryptedBytes = rsaCryptoServiceProvider.Encrypt( tempBytes, true );

告诉它使用OAEP padding加密,这会在填充中引入随机性。这样做的原因是加密相同的明文总会产生不同的结果(如您所见)。这是一件好事,因为它会阻止信息泄露,攻击者看到您多次发送相同的消息。

有一个很好的历史例子说明为什么这很重要。 “AF is short of water