RSA加密数据可以通过HTTP发送吗?

时间:2011-03-15 19:21:15

标签: java http encryption rsa

我的应用程序使用RSA加密数据,通过HTTP发送到远程服务器。当然数据是byte []形式。它可以安全地转换为字符串,url编码,并在URL的查询中发送?还是需要编码?

3 个答案:

答案 0 :(得分:9)

是的,当然。这里没有RSA特定的东西;你只是上传二进制数据。

  • 在GET查询字符串中发送:是的,您可以对其进行URL编码(或对其进行base64编码,然后对其进行URL编码),前提是它不会太长 - 某些客户端和服务器具有URL长度限制。

  • 您可以发布任意长度的数据;你可以作为原始二进制文件POST,假设另一端可以处理它 - 即你可以绕过框架中试图将其解析为参数变量的部分 - 或者再次作为URL编码/ base-64编码的URL编码。 / p>

  • 您可以将其包装为文件上传(multipart / form-data)和POST。同样任何长度的数据,这将只是base64编码所以可能会缩短一点。它也可以更容易集成到您的服务器应用程序框架中,因为它可能内置了文件上载支持。

答案 1 :(得分:2)

您应将其编码为Base64以确保安全。您可以使用Apache Commons Codec项目中的Base64类。

答案 2 :(得分:0)

在PHP中使用rawurlencode(),否则$ _GET数据将不会总是正确编码...有关rawurlencode()和urlencode()之间的区别,请参见手册。