当前位置:编程学习 > C#/ASP.NET >>

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

公钥数据:
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字节,并且两者内容完全不对.
可以确认的是两者传入的数据和公钥完全一致.
是什么原因呢?要怎么做才能一样?
--------------------编程问答-------------------- mark 同时调试一下对比看 --------------------编程问答-------------------- 这个很正常,因为他们算法的原理一样,但是具体的算法细节是有差别的,就像php内置MD5加密与net,与asp的MD5值都有一定的差别
--------------------编程问答-------------------- 这东西有点难度!!
帮你顶!!! --------------------编程问答-------------------- 上面的数据没有换行符,
现在的问题在于,我必须要弄成java一样的结果,要不然对方不认我的数据,他们要做数字签名.
RSA算法是不是还存在一些选项...如果Modulus 和 Exponent 一样,公钥加密应该结果也是一样的吧? --------------------编程问答-------------------- up --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 寻求高手.. --------------------编程问答-------------------- 不要用系统自带的算法,可以找一些开源算法,自己把它们转换成各种语言的
补充:.NET技术 ,  .NET Framework
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,