1. MD5
1.1 什么是MD5
全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”
效果:对输入信息生成唯一的128位散列值(32个字符)
1.2 MD5的特点
输入两个不同的明文不会得到相同的输出值
根据输出值,不能得到原始的明文,即其过程不可逆
1.3 MD5的应用
由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用
主要运用在数字签名、文件完整性验证以及口令加密等方面
MD5解密网站:http://www.cmd5.com
注册 登录2. MD5改进
现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度
加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序
......
总之宗旨就是:黑客就算攻破了数据库,也无法解密出正确的明文
3. 代码实现
3.1 没有加盐的
//引入 #import "NSString+Hash.h"
// 原始数据
NSString *password = @"zhang1";
// 将原始数据进行MD5 加密.
password = password.md5String;
NSLog(@"password:%@",password);
NSString *pass1 = @"zhang2";
pass1 = pass1.md5String;
NSLog(@"pass1:%@",pass1);
3.2 加盐的MD5加密
// 单纯的 MD5 加密能够被破解!
// 更高一级的MD5机密: MD5 加盐.
// 在用户原始密码的基础上增加一个 "盐值",提高用户密码的复杂度!
NSString *salt = @"~!@#$%^&*greedyDoor";
password = [password stringByAppendingString:salt];
password = password.md5String;
网友评论