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字节,并且两者内容完全不对.
可以确认的是两者传入的数据和公钥完全一致.
是什么原因呢?要怎么做才能一样?