我一直在将RSA加密字节编码为字符串时遇到麻烦,然后又将它们返回到另一端(远程主机)的字节,另一端引发了“错误数据”的异常。
我尝试了谷歌,没有运气。
到目前为止,我的代码:
客户:
array<Byte>^Test=Encoding::ASCII->GetBytes(Input);
array<Byte>^TempByteText=RSA->Encrypt(Test,false);
String^ TempString = Encoding::ASCII->GetString(TempByteText);
return TempString;
然后,我将 TempString 发送到服务器。我发送的任何其他内容,任何形式的任何文本或字节均按预期到达另一端,但RSA加密字节除外。服务器:
array<Byte>^Test=Encoding::ASCII->GetBytes(Input);
array<Byte>^TempByteText=RSA->Decrypt(Test,false);
return TempByteText;
即使我在本地返回函数,仍然会说相同的错误数据。我有一个1024位密钥,因此Encrypt大小应该为128个字节,它为 IS ,但仍然显示为“错误数据”。任何帮助,将不胜感激。
最佳答案
加密的数据将不会是ASCII,大多数字节将落入不可打印的区域,如果您需要String格式的加密数据,则需要转换为其他编码,例如Base64或十六进制。
关于c++ - 加密RSA,编码为字符串。在另一端编码回字节并解密RSA,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37979368/