RSA加密的问题,和java加密出来的结果不一样,请问问题出在哪里.

ghosthjt 2008-12-01 04:48:11
公钥数据:
0093a065fbf22ba7be1c28a5a31036956fee8f2912e1f8e06c91674c3057bee666828
f656befd5434a2b7d58f62637972731b45d087d23a7747e8417b3c6a2aa8b590c3ae5
aafa90e97979569fadaa6f6bac556f04f897afefb9040067abf259f4d37f487fbea21
a55b89be203f3cedfd45517d5dfab52096119fdfb0c48d4bbed
待加密数据:
feff00340039003000380063003600380062006400640061003100660061006500340
037003700660039006500310031006500650038006200610063003800390032
我的写法是:

m_keyarr = 上面的公钥数据按字符串转成bytearray,比如0093a065转成bytearray之后内存里的值是00 93 a0 65 ...这样
m_dataarr = 上面的待加密数据按字符串转成bytearray;
cli::array<Byte>^ Exponent = {1,0,1};
RSACryptoServiceProvider^ RSA = gcnew RSACryptoServiceProvider;
RSAParameters RSAKeyInfo;
RSAKeyInfo.Modulus = m_keyarr;
RSAKeyInfo.Exponent = Exponent;
RSA->ImportParameters(RSAKeyInfo);
cli::array<Byte>^ res1 = RSA->Encrypt(m_dataarr, false);
我转出的结果有129个字节,java中转出来只有128字节,并且两者内容完全不对.
可以确认的是两者传入的数据和公钥完全一致.
是什么原因呢?要怎么做才能一样?
...全文
605 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
majia_of_run 2008-12-02
  • 打赏
  • 举报
回复
不要用系统自带的算法,可以找一些开源算法,自己把它们转换成各种语言的
ghosthjt 2008-12-02
  • 打赏
  • 举报
回复
寻求高手..
usb80 2008-12-01
  • 打赏
  • 举报
回复
帮顶
qap22 2008-12-01
  • 打赏
  • 举报
回复
帮顶
luckapple2 2008-12-01
  • 打赏
  • 举报
回复
up
ghosthjt 2008-12-01
  • 打赏
  • 举报
回复
上面的数据没有换行符,
现在的问题在于,我必须要弄成java一样的结果,要不然对方不认我的数据,他们要做数字签名.
RSA算法是不是还存在一些选项...如果Modulus 和 Exponent 一样,公钥加密应该结果也是一样的吧?
yagebu1983 2008-12-01
  • 打赏
  • 举报
回复
这东西有点难度!!
帮你顶!!!
Fibona 2008-12-01
  • 打赏
  • 举报
回复
这个很正常,因为他们算法的原理一样,但是具体的算法细节是有差别的,就像php内置MD5加密与net,与asp的MD5值都有一定的差别
yilanwuyu123 2008-12-01
  • 打赏
  • 举报
回复
mark 同时调试一下对比看

17,747

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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