MD5網(wǎng)絡(luò)使用

1. MD5

1.1 什么是MD5

全稱是Message Digest Algorithm 5,譯為“消息摘要算法第5版”
效果:對(duì)輸入信息生成唯一的128位散列值(32個(gè)字符)

1.2 MD5的特點(diǎn)

輸入兩個(gè)不同的明文不會(huì)得到相同的輸出值
根據(jù)輸出值,不能得到原始的明文,即其過程不可逆

1.3 MD5的應(yīng)用

由于MD5加密算法具有較好的安全性,而且免費(fèi),因此該加密算法被廣泛使用
主要運(yùn)用在數(shù)字簽名、文件完整性驗(yàn)證以及口令加密等方面

MD5解密網(wǎng)站:http://www.cmd5.com

注冊(cè)
登錄

2. MD5改進(jìn)

現(xiàn)在的MD5已不再是絕對(duì)安全,對(duì)此,可以對(duì)MD5稍作改進(jìn),以增加解密的難度
加鹽(Salt):在明文的固定位置插入隨機(jī)串,然后再進(jìn)行MD5先加密,后亂序:先對(duì)明文進(jìn)行MD5,然后對(duì)加密得到的MD5串的字符進(jìn)行亂序
......
總之宗旨就是:黑客就算攻破了數(shù)據(jù)庫,也無法解密出正確的明文

3. 代碼實(shí)現(xiàn)

3.1 沒有加鹽的

//引入 #import "NSString+Hash.h"
  // 原始數(shù)據(jù)
    NSString *password = @"zhang1";
    
    // 將原始數(shù)據(jù)進(jìn)行MD5 加密.
    password = password.md5String;
    
    NSLog(@"password:%@",password);
    
    NSString *pass1 = @"zhang2";
    
    pass1 = pass1.md5String;
    
    NSLog(@"pass1:%@",pass1);

3.2 加鹽的MD5加密

    // 單純的 MD5 加密能夠被破解!
    
    // 更高一級(jí)的MD5機(jī)密:  MD5 加鹽.
    
    // 在用戶原始密碼的基礎(chǔ)上增加一個(gè) "鹽值",提高用戶密碼的復(fù)雜度!
    
    NSString *salt = @"~!@#$%^&*greedyDoor";
    
    password = [password stringByAppendingString:salt];
    
    password = password.md5String;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容