【问题标题】:How can I generate a RSA Public key in Java that can be used on Android and on iOS?如何在 Java 中生成可在 Android 和 iOS 上使用的 RSA 公钥?
【发布时间】:2016-06-12 11:33:25
【问题描述】:

我有一个使用 Spring 的 Java 网络服务,它需要生成一个 RSA 密钥对并通过这个 WS 发送公钥,以便 ANDROID 和 iOS 应用程序可以使用这个公钥读取和加密一个字符串。

在每个 WS 请求上,它必须生成一个新的密钥对。

我尝试在 Java 中使用 KeyPair 类,只有 ANDROID 应用程序能够识别公钥。

我该怎么做?有人可以帮我弄这个吗?

【问题讨论】:

    标签: java android ios encryption rsa


    【解决方案1】:

    进一步研究发现,iOS 的 secKeyWrapper 只能接受 ASN.1 DER 格式的密钥数据。任何以任何其他格式传递数据的尝试在 iOS 上肯定会失败。

    通过以 PEM 格式转储 RSA 密钥解决了问题,并使用遵循 link 的方法读取 PEM 并转换为 ASN.1 DER 格式并将其传递给 SecKeyWrapper!

    替代方法:也可以通过使用适用于 iOS 的 OpenSSL 库(请参阅 Generate Public Key From Modulus & Exponent on iOS using OpenSSL)并使用从任何其他平台共享的公钥的输入模数和指数(base64 编码)数据创建 RSA 对象来解决问题。

    【讨论】:

      【解决方案2】:

      Preferences -> SSH2 -> Key Management -> 选择 RSA -> 将鼠标指向银行空间,直到生成公钥 -> 点击保存私钥(公钥和私钥都将保存在 C://用户/用户名/.ssh/id_rsa.pub 键),仅此而已....

      【讨论】:

      • 这不是我需要的,因为我必须在每个 WS 请求上创建一个新的密钥对。
      猜你喜欢
      • 2017-02-28
      • 2013-09-25
      • 2018-10-07
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 2011-07-11
      • 2012-10-20
      • 2016-01-19
      相关资源
      最近更新 更多