我一直无法将RSA加密字节编码为字符串,然后将它们恢复到另一端的字节(远程主机)。另一方面,它提出了不良数据的例外。我试过谷歌,没有运气。
我的代码到目前为止:
PC1:
array<Byte>^Test=Encoding::ASCII->GetBytes(Input);
array<Byte>^TempByteText=RSA->Encrypt(Test,false);
String^ Test2 = Encoding::ASCII->GetString(TempByteText);
return Test2;
我将 Test2 发送到PC2。我发送的任何其他内容,任何类型的任何文本或字节都按预期到达另一端,但是对RSA加密字节执行。
PC2:
array<Byte>^Test=Encoding::ASCII->GetBytes(Input);
array<Byte>^TempByteText=RSA->Decrypt(Test,false);
即使我在本地返回功能,它仍然会说相同的错误数据。我有一个1024位的密钥,所以加密大小应该是128字节,它是,但它仍然说是坏数据。
任何帮助都会受到影响。
答案 0 :(得分:1)
加密数据不是ASCII,大多数字节将落入不可打印区域,如果需要String格式的加密数据,则需要转换为其他编码,如Base64或十六进制。