| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
网络通信在安全性比较敏感的环境,有可能会用到 RSA 算法,这里有 RSA 的中文说明 。
但是在异构系统间通信,使用 RSA 加密的时候,由于各系统对于 RSA 的实现有些细节差异,比如:对证书和密钥格式的支持不一致,而且证书格式与扩展名关系又比较乱,所以会导致一些问题。
证书格式方面,迁就 JavaScript,在 Objective-C 和 Java 端增加对相应格式的处理。
在终端中,使用 OpenSSL 生成需要的公钥、私钥对
# 生成 PEM 格式的私钥
$ openssl genrsa -out rsa_1024_priv.pem 1024
# 根据私钥生成对应 PEM 格式的公钥
$ openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem主要职责: 作为 Client 在 Web 页面使用,使用公钥对数据进行加密。
我们使用了 JavaScript 的 RSA 库 JSEncrypt。由于 JS 对二进制数据的支持不太方便,所以 JSEncrypt 对于公钥和私钥的支持,都使用了 PEM 格式。
主要职责: 作为 Client 在 iOS 或 macOS 设备上使用,使用公钥对数据进行加密。
其实在 Apple 的 Core Foundation 中,对 RSA 有比较标准的支持,但是不知道什么原因,不支持 PEM 格式密钥的处理。由于 JS 端处理能力有限,所以最后采用的是在 Objective-C 端集成 OpenSSL 的方式来处理。
参考内容:
主要职责:
参考内容:
Java 中对于 RSA 也有比较良好的支持,主体代码参考了《RSA Encryption Example》。但是这份代码也是不支持读取 PEM 格式的私钥,所以参考了 Stack Overflow。
| Back | FazBrowse Home | New Git URL |