RSA 密钥 不变 加密的数据为什么总是变化的

gxdhover 2019-09-17 02:03:40
大家好:
我用的.net RSACryptoServiceProvider类 进行加密测试,

我测试程序使用的固定私钥
每次通过ImportParameters方法 设置RSAParameters属性,
为什么每次运行加密过的数据总是变化,但是使用RSA解密也没问题,

但是我的客户端是加密锁,加密锁里面的RSA加密解密程序,密钥不变,加密的数据也是不变的, 所以我PC发的变化的加密数据 加密锁不能正确解密,

谁能告诉我这是怎么回事啊!
...全文
1492 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
github_36000833 2019-09-17
  • 打赏
  • 举报
回复
虽然每次加密的结果不同,但是,都能解密回原始数据
gxdhover 2019-09-17
  • 打赏
  • 举报
回复
引用 2 楼 github_36000833 的回复:
从密码学上,对相同的数据,每次加密的结果最好不同。

如果相同的数据,每次加密的结果相同,可能就会招来各种攻击,比如字典攻击,关联式密码攻击等等。


多谢您的指教,我明白了,
可是我加密锁是固定的,用.net 能实现固定的RSA加密算法吗, 否则我的加密锁和.net 没法 RSA通信,实现加密传输了。 请指教我一下 十分感谢
github_36000833 2019-09-17
  • 打赏
  • 举报
回复
从密码学上,对相同的数据,每次加密的结果最好不同。 如果相同的数据,每次加密的结果相同,可能就会招来各种攻击,比如字典攻击,关联式密码攻击等等。
github_36000833 2019-09-17
  • 打赏
  • 举报
回复 1
因为RSA有数据补齐,会引入随机数据。 比如1024位的RSA,理论上可以可以加密1024位的数据,但实际限制为700多位,因为它要留出空间,根据PKCS#1 v1.5进行随机数据补齐。 因为有了随机数据,每次加密的数据会有变化。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧