请教如何让RSA公钥加密的结果每次都一样

mesunwen 2017-06-15 07:09:06

C#的RSACryptoServiceProvider类,使用公钥加密,同一个明文,默认每次加密后的密文结果是不同的,但用私钥都可以解码。每次密文不同c#这样设计是为了安全。

但是基于某些业务需求,需要同一个明文每次加密结果都相同,用C#如何实现呢?

看到JAVA版本那边说需要把用random固定 ,cipher.init(opmode, key, random),不懂JAVA。

请教下C#如何RSA加密使得同一个明文每次加密结果密文相同。

目前常用的RSA加密方法如下:

RSACryptoServiceProvider Provider = new RSACryptoServiceProvider();

Provider.FromXmlString(PubKeyXML);

byte[] PlainTextBArray = Encoding.UTF8.GetBytes(plainText);

byte[] encryptStrArray = Provider.Encrypt(PlainTextBArray,false);

//得到密文encryptStr
encryptStr = Convert.ToBase64String(encryptStrArray);
...全文
3952 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
jiuzaizuotian2014 2018-01-01
  • 打赏
  • 举报
回复
那这是怎么实现的呢,是不是每次加密的时候,在原文中某个固定位置插入一段随机数,然后进行加密。在解密的时候,再把那个固定位置的随机数给删除掉,就是解密的文字。是不是这么做的啊,大家还知道啊
DealFish 2018-01-01
  • 打赏
  • 举报
回复
.NET 下的RSA 已经优化过了的,防止已知密文攻击
mesunwen 2017-06-19
  • 打赏
  • 举报
回复
继续顶,请高手回答下
mesunwen 2017-06-16
  • 打赏
  • 举报
回复
还没得到答案,再顶下
by_封爱 版主 2017-06-16
  • 打赏
  • 举报
回复
既然都相同 那直接写死不就行了...
evasunny2008 2017-06-16
  • 打赏
  • 举报
回复
RSA属于非对称加密,不管是用RSA加密还是做签名,每次得到的密文都是不一样的 如果想让同一个字符串加密结果是一样的,可以使用对称加密算法,如DES,ASE,DESede
mesunwen 2017-06-15
  • 打赏
  • 举报
回复
楼上说的不是我的意思
IEEE_China 2017-06-15
  • 打赏
  • 举报
回复
要这种效果?

-------------------------------
加密解密:
原字符串:abc,解密字符串:abc,加密字符串:AD-9F-E6-7F-36-F0-E5-D4-05-4A-82-87-2C-3A-EC-BF-A2-92-31-9C-B1-EE-06-E2-94-1D-FF-1A-52-DF-73-22367e7d12-0659-4c5b-931a-0524af2698db
请输入字符串:abc
-------------------------------
加密解密:
原字符串:abc,解密字符串:abc,加密字符串:ED-1B-A3-BF-74-0F-EA-D3-3E-5E-A1-29-65-10-1E-58-8E-9D-A5-FE-FC-A8-7B-86-35-31-53-B2-12-8D-7B-A8d1db6359-604b-4828-b4a7-e7e4827e968f
请输入字符串:abc
-------------------------------
加密解密:
原字符串:abc,解密字符串:abc,加密字符串:FC-AB-39-DD-01-B9-E9-F9-B6-43-38-AB-46-23-53-6F-7B-BD-5A-4C-6B-DF-20-40-F3-F2-41-E6-16-B3-8F-2Ebc38be6a-4773-4b2b-a83e-e7b6125a880a
请输入字符串:abc
-------------------------------
加密解密:
原字符串:abc,解密字符串:abc,加密字符串:66-F8-67-6E-6E-73-18-1A-BE-5F-CB-59-74-B2-CD-E4-85-A0-B1-88-F2-42-9D-E6-99-9B-95-73-7B-2D-31-BB6276104e-7128-43ac-9b3b-e25a3ef3347a
请输入字符串:abc
-------------------------------
加密解密:
原字符串:abc,解密字符串:abc,加密字符串:87-AB-1C-73-9F-A5-1B-BC-3B-C5-18-54-B7-8B-39-36-9F-F6-EA-B0-62-C0-1B-5B-73-E5-8A-61-21-D7-18-44fa113455-5a8e-4243-8940-ddf69a12199d
请输入字符串:abc
-------------------------------
加密解密:
原字符串:abc,解密字符串:abc,加密字符串:F6-01-FE-F9-76-92-BC-19-61-CA-87-B7-13-D3-82-02-CF-6D-88-95-13-05-D6-F3-C6-92-73-0D-97-C0-54-E7d5fbdbe7-a206-4e4d-87f1-485577d7325f

111,131

社区成员

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

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

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