# 敏感数据加解密
# 描述
游云南开放平台会对提供敏感数据的接口进行加密处理,当前被列为敏感数据的接口有
- 一码通
- 用户手机号
- 常用旅客信息
采用的加解密方式如下:
- 开放平台先采用rsa非对称加密的方式加密一个aes对称密钥,非对称密钥生成规则见下面RSA 公私钥对生成
- 开放平台会使用这个aes对称密钥加密开放能力数据,加密算法采用的是AES/CBC/PKCS5Padding
- 加密过的aes对称密钥会随开放能力数据一并返回,并同时返回初始向量iv字段
- 开发者解密时先用非对称密钥的私钥解密接口内的aes对称密钥
- 再使用aes对称密钥和初始向量iv解密数据密文
注意:
- 接口返回的密文数据,密文密钥,初始向量iv都经过base64 encode,只是iv未被加密
- 解密后的能力数据明文是JSON string
# 密钥的提供
- rsa非对称密钥对由三方开发者生成,私钥由三方开发者保存(切记私钥不能外传),公钥提供到游云南开放平台保存;
- 使用开放平台上传公钥【右上角账号-个人中心-公钥上传】;
- aes对称密钥是由开放平台随机生成并随开放能力接口返回,开发者不需要自行管理。
# RSA 公私钥对生成
- Linux 环境
- 使用openssl 命令生成 2048 长度的私钥1.openssl genrsa -out rsa_private_key.pem 2048 #转成pkcs8 格式 标准输出即使用到的私钥
- openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -outform PEM outform > pkcs8_rsa_private_key.pem
- 输出公钥 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 三方服务保存私钥文件 pkcs8_rsa_private_key.pem,并将公钥文件 rsa_public_key.pem 连同三方服务其他配置信息邮件发送给游云南
- Windows 环境
- 根据自己的系统位数,到网址 http://slproweb.com/products/Win32OpenSSL.html 下载相应版本的 OpenSSL 并安装,比如 64 位的系统,那么下载 Win64 OpenSSL v1.1.1 Light(EXE)版本,这里的 OpenSSL 版本根据实际情况一般下载最新的即可
- 安装完OpenSSL 后,命令行进入安装目录中的 bin 目录,执行 openssl.exe 3.生成私钥 输入"genrsa -out rsa_private_key.pem 2048",回车,在 bin 目录下会生成一个 rsa_private_key.pem 文件
- 生成公钥 输入"rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem",回车,在 bin 目录下会生成一个名为 rsa_public_key.pem 文件
- 把私钥转换成PKCS8 格式(必须) 输 入 "pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -out pkcs8_rsa_private_key.pem - nocrypt" 回车,在bin 目录下会生成一个名为 pkcs8_rsa_private_key.pem 文件
- 三方服务保存私钥文件pkcs8_rsa_private_key.pem,并将公钥文件 rsa_public_key.pem 连同三方服务其他配置信息邮件发送给游云南
← 获取业务接口调用凭证 内嵌Web应用 →