您的位置:首页 > 移动开发 > Android开发

RSA公钥和私钥的生成(PHP\Android\iOS),数据传输的安全性

2017-11-03 13:47 751 查看
如下为加解密文件的生成. 使用过程详见后面的文章<数据传输的安全性>

这里说明一下,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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: