android、ios与服务器端php使用rsa加密解密通讯
2015-08-25 18:53
816 查看
下载RSA密钥生成工具openssl,点击下载,解压缩至独立的文件夹,进入其中的bin目录,执行以下命令:
第一条命令生成原始 RSA私钥文件 rsa_private_key.pem,第二条命令将原始 RSA私钥转换为 pkcs8格式,第三条生成RSA公钥 rsa_public_key.pem
从上面看出通过私钥能生成对应的公钥,因此我们将私钥private_key.pem用在服务器端,公钥发放给android跟ios等前端
打开rsa_public_key.pem文件,将上面代码的RSA_PUBLICE替换成其中内容即可。
CRSA.m代码
其中openssl api包,我们可以在第一步RSA密钥生成工具openssl的include文件夹中得到,完整代码包请点击这里下载
从上面看出通过私钥能生成对应的公钥,因此我们将私钥private_key.pem用在服务器端,公钥发放给android跟ios等前端
第二步,php服务器端,使用openssl方法来进行加密解密类,代码如下:
需要注意的是,在初始化Cipher对象时,一定要指明使用"RSA/ECB/PKCS1Padding"格式如Cipher.getInstance("RSA/ECB/PKCS1Padding");打开rsa_public_key.pem文件,将上面代码的RSA_PUBLICE替换成其中内容即可。
第四步,ios前端,iOS上没有直接处理RSA加密的API,网上说的大多数也是处理X.509的证书的方法来实现,不过X.509证书是带签名的,在php端openssl_pkey_get_private方法获取密钥时,第二个参数需要传签名,而android端实现X.509证书加密解密较为不易,在这里我们利用ios兼容c程序的特点,利用openssl的api实现rsa的加密解密,代码如下:
CRSA.h代码:CRSA.m代码
其中openssl api包,我们可以在第一步RSA密钥生成工具openssl的include文件夹中得到,完整代码包请点击这里下载
相关文章推荐
- Android 中textview显示富文本信息
- Android 中textview显示富文本信息
- Android TextView 如何判断是否已经省略
- 调用系统相机 data返回null
- android数据库事务
- Android自定义EditText去除边框并添加下划线
- Android:30分钟弄明白Touch事件分发机制
- android 跳转 系统浏览器的方法
- Android 常规任务的高度【schedule】与【scheduleAtFixedRate】差额
- android byte[] 和short[]的转换
- Android Toolbar样式定制详解
- Android Activity生命周期演示程序的例子
- Android 百度地图开发 应用到自己的项目中
- android中跨线程向控件传值的问题
- android代码设置、打开WLAN wifi热点及热点的连接
- Android GridView属性集合
- Android最佳性能实践(二)——分析内存的使用情况
- Android最佳性能实践(一)——合理管理内存
- Android高效加载大图、多图解决方案,有效避免程序OOM
- 【图文】Git学习之十步掌握通过Android Studio整合Git将本地库Push到远程库