iOS开发程序员iOS Developer

MD5网络使用

2016-07-11  本文已影响101人  iYeso

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;
上一篇下一篇

猜你喜欢

热点阅读