一.base64编码
原理:
原字符转换为 ASCII 码后,再转成二进制,每六位截取经过 Base64编码得到最终值,如下图。
转换过程.jpg
不能整除用0补位用=结尾,不详述。
用处
由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。
在项目中,将报文进行压缩、加密后,最后一步必然是使用base64编码,因为base64编码的字符串,更适合不同平台、不同语言的传输。(例如,对其在进行UTF-8等其他编码,不会改变结果)。
并非加密
Base64 是一种拥有固定规则的编码方式,完全可逆,因此并不能用来作为保证信息安全的加密方式。
实现代码
使用 GitHub 上分类:NSData+Base64
和 NSString+Base64
二.MD5加密
原理:
对输入信息不论产孤单生成唯一的128位散列值(32个字符)。
具有以下特点:
- 输入两个不同的明文不会得到相同的输出值
- 根据输出值,不能得到原始的明文,即其过程不可逆
应用:
注册过程中,使用 MD5 对密码进行加密,传入服务器,服务器保存加密后的密码。(也可能在注册过程中不使用加密,服务器保存明文密码,服务器进行 MD5 加密同时保存加密后密码)
登录过程中,使用 MD5 对密码进行加密,服务器比对加密后的密码是否一致进行验证登录。
这样,即使拦截到加密后的密码也无法逆向得到原密码,而且根据加密后的密码进行登录(会多做一次加密影响结果)也无法登录成功。
加盐
MD5 加密不再完全安全,可能会被破解,在此基础上,可以进行加盐。
即:在原字符串的基础上在固定位置插入自定义字符串(公司固定)后在进行 MD5 加密。
实现代码
使用 GitHub 上分类:NSString+Hash
网友评论