iOS开发学习

iOS开发 - 网络数据安全加密(MD5)

2017-04-29  本文已影响191人  iOS开发攻城狮

提交用户的隐私数据

一定要使用POST请求提交用户的隐私数据

GET请求的所有参数都直接暴露在URL中

请求的URL一般会记录在服务器的访问日志中

服务器的访问日志是黑客攻击的重点对象之一

用户的隐私数据

登录密码

银行账号

… …

数据安全

仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题

可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据

因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交

常见的加密算法

加密算法的选择

一般公司都会有一套自己的加密方案,按照公司接口文档的规定去加密

MD5加密

什么是MD5

全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”

效果:对输入信息生成唯一的128位散列值(32个字符)

MD5的特点

输入两个不同的明文不会得到相同的输出值

根据输出值,不能得到原始的明文,即其过程不可逆

MD5的应用

由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用

主要运用在数字签名、文件完整性验证以及口令加密等方面

MD5改进

现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度

加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5

先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序

… …

总之宗旨就是:黑客就算攻破了数据库,也无法解密出正确的明文

网络数据加密方案

1> 加密对象:隐私数据,比如密码、银行信息

2> 加密方案

* 提交隐私数据,必须用POST请求

* 使用加密算法对隐私数据进行加密,比如MD5

3> 加密增强:为了加大破解的难度

* 对明文进行2次MD5 : MD5(MD5(pass))∗先对明文撒盐,再进行MD5:MD5(pass.$salt)

2.本地存储加密

1> 加密对象:重要的数据,比如游戏数据

3.代码安全问题

1> 现在已经有工具和技术能反编译出源代码:逆向工程

* 反编译出来的都是纯C语言的,可读性不高

* 最起码能知道源代码里面用的是哪些框架

2> 参考书籍:《iOS逆向工程》

3> 解决方案:发布之前对代码进行混淆

* 混淆之前

混淆之后

MD5加密实例

导入加密文件


上图为2017年最新的视频教程资料,搜索235再填上214最后输入9755加我好友私聊我上传视频教程,有什么不懂的也可以来私聊问我。

不定时更新中。

如果你能明白这些视频资料的好差,那么你也算是入行了,底层和中高层就是这一步之差。

上一篇下一篇

猜你喜欢

热点阅读