如下为加解密文件的生成. 使用过程详见后面的文章<数据传输的安全性>
这里说明一下,PHP为服务器端,Android和iOS为客户端
PHP需要的文件:
rsa_private_key.pem rsa解密、sha加签
rsa_public_key.pem rsa加密、sha验签
Android需要的文件:
rsa_public_key.pem rsa加密、sha验签
pkcs8_private_key.pem rsa解密、sha加签
iOS需要的文件:
Ios ==> rsacert.der rsa加密、sha验签
Ios ==> p.p12 rsa解密、sha加签
以下为生成这些文件的步骤:
一.安装
Windows7 64位系统 , 点击安装 Win64OpenSSL-1_1_0d.exe
二.环境配置
计算机->属性->高级系统设置->系统属性->高级->环境变量
填写: 变量名=OPENSSL_CONF
变量值=F:\RSA_tools\OpenSSL-Win64\bin\openssl.cfg
F:\RSA_tools\ 是我安装目录,请填写你的安装目录 , 整个路径请不要有中文或其它特殊字符
三.运行工具
进入安装目录下的bin , 执行 openssl.exe
四.RSA密钥生成命令
1. php用
生成RSA私钥 php解密使用rsa_private_key.pem文件
openssl>genrsa -out rsa_private_key.pem 1024
2. php和Android用
生成RSA公钥 , Android 和 php使用加密使用文件 rsa_public_key.pem
openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3. Android专用
将RSA私钥转换成PKCS8格式 , Android使用 解密文件pkcs8_private_key.pem
openssl>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out pkcs8_private_key.pem
4. ios专用
由rsa_private_key.pem生成csr -> 生成crt -> 生成der -> 生成p12
(1). 创建整数请求
openssl>req -new -key rsa_private_key.pem -out rsacert.csr
(2). 生成整数并签名,10年有效期
openssl>x509 -req -days 3650 -in rsacert.csr -signkey rsa_private_key.pem -out rsacert.crt
(3). 转换格式-将 PEM 格式文件转换成 DER 格式 (公钥)
openssl>x509 -outform der -in rsacert.crt -out rsacert.der
(4). 导出P12文件 (私钥)
openssl>pkcs12 -export -out p.p12 -inkey rsa_private_key.pem -in rsacert.crt
注意:“>”符号后面的才是需要输入的命令。
5. 三端同时作战:
php ==> rsa_private_key.pem 解密
php ==> rsa_public_key.pem 加密
Android ==> rsa_public_key.pem 加密
Android ==> pkcs8_private_key.pem 解密
Ios ==> rsacert.der 加密
Ios ==> p.p12 解密
2017/03/14
xiaojun.lan