前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS加密方式:RSA DES MD5

iOS加密方式:RSA DES MD5

作者头像
Python疯子
发布2018-09-06 15:49:33
6290
发布2018-09-06 15:49:33
举报
文章被收录于专栏:Python疯子Python疯子

最近用到了信息安全加密,主要用到了RSA DES MD5

MD5:加密后不可逆(只能加密不可解密),我们用于加密用户的登录密码

DES:对称加密(服务器和客户端公用同一个秘钥),缺点:一旦被抓包破解了秘钥,就能破解所有的传递信息

RSA:非对称加密(会生成一对秘钥(公钥和私钥)), 通过MAC终端生成两个.pem文件,再用vim打开文件,获取里面的字符串(也就是秘钥),

如果服务器端同时保留公钥和私钥,可以相互解密加密,如果移动端同时保留公钥和私钥,也可以相互解密加密

一般情况下,防止APP被反编译破解获取一对秘钥,服务器端只保留私钥(只解密不加密),移动端只保留公钥(只加密不解密)

本来想着:密码加密用MD5,信息传递用RSA,

在用RSA加密时遇到了问题,移动端通过公钥加密发给服务器,服务器通过私钥解密存储信息数据,服务器再通过私钥加密返回数据给移动端,移动端通过公钥进行解密获取数据

但在服务器给移动端返回用私钥加密后的数据时,移动端用公钥解密没有成功(我只是做iOS端的,Android不知道具体情况),所以这种解密方式放弃了,如果大家有解决方案,欢迎交流。

最终解决思路:密码加密用MD5,信息传递用RSA + DES

首先移动端给服务器传递通过RSA公钥加密后的数据,参数包括DES的密钥(密钥是随机生成的八位字符串) 和 相关参数信息,服务器通过私钥解密信息数据,里面包括DES密钥和 相关参数信息,服务器再通过此DES密钥加密返回数据给移动端,移动端通过此DES密钥进行解密获取数据。优点:因为RSA不容易解密,即使被拦截解密了,获取了DES的密钥,因为DES的密钥是随机生成的,也只能解密这一次的数据信息,不会对其他数据信息产生影响。(注:DES的密钥每一次都要重新随机生成,也就是一个密钥只完成这一次的数据传递)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.03.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档