【问题标题】:Can RSA Encrypted Data be Sent Over HTTP?可以通过 HTTP 发送 RSA 加密数据吗?
【发布时间】:2020-11-12 01:42:13
【问题描述】:

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

【问题讨论】:

    标签: java http encryption rsa


    【解决方案1】:

    是的,当然。这里没有特定于 RSA 的内容。你只是在上传二进制数据。

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

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

    • 您可以将其包装为文件上传(多部分/表单数据)并发布。同样是任何长度的数据,这将是 base64 编码的,所以可能会更短一些。它也将更容易集成到您的服务器应用程序框架中,因为它可能会内置文件上传支持。

    【讨论】:

      【解决方案2】:

      为了安全起见,您应该将其编码为 Base64。您可以使用 Apache Commons Codec 项目中的 Base64 类。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-29
          • 1970-01-01
          • 2013-11-16
          • 1970-01-01
          • 1970-01-01
          • 2023-03-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多