适用于iOS、Android和Web的多设备RSA加密

Multi device RSA encryption for iOS, Android and Web

本文关键字:RSA 加密 Web iOS Android 适用于      更新时间:2023-09-26

我正在开发一款信使应用程序,它提供端到端RSA加密。信使是为iOS(Swift)、Android和Web(JavaScript)开发的。一个月以来,我一直无法前进,因为我还没有找到任何RSA多平台加密的解决方案。我为任何平台找到了一个解决方案,但我无法在iOS上解密我在Android上加密的消息…

我正在使用:

  • Swift:Swift RSAUtils(https://github.com/btnguyen2k/swift-rsautils)
  • Android:java.security
  • JavaScript:JSEncrypt(https://github.com/travist/jsencrypt)

我有几个问题无法自己回答,因为我在安全方面没有太多经验。

  1. 是否可以使用Android(Java)、iOS(Swift)和Web(JavaScript)在多台设备上进行原生rss加密?

  2. RSA是制作"安全"信使的最佳方法吗?我的"系统"如下:

用户A注册(在应用程序中生成公钥和私钥…->用AES加密私钥->并将两个密钥都存储在数据库中)->用户A向用户B写入消息->该消息发送给用其公钥加密的用户B和用其公钥密钥加密的用户A(这样两人都可以读取消息)->用户B用其私钥解密加密的消息

或者有更好的方法可以提高安全性和性能吗?

  1. 你对Swift、Android和JS有什么建议吗
  1. 它必须起作用,但我不知道怎么做。特别是对于swift来说,很难找到什么。我很确定安卓系统也支持PKC8Key。您的Swift解决方案不支持任何其他Key格式。(https://github.com/btnguyen2k/swift-rsautils/issues/2)

2.看看这里:https://security.stackexchange.com/questions/35471/is-there-any-particular-reason-to-use-diffie-hellman-over-rsa-for-key-exchangeDiffie-Hellman可能是更好的解决方案。

  1. 即使这是一个有点偏离主题,我感兴趣的是如何使加密与Android和Swift兼容。我认为你应该寻找DH解决方案