一個任意長度的字節串變換成一定長度的十六進制的大整數.
注意,字符串的轉換過程是不可逆的,不能通過加密結果,反向推導出原始內容
基本介紹
需要導入第三方框架: NSString+Hash
MD5特點
壓縮性 : 任意長度的數據,算出的 MD5 值長度都是固定的.
容易計算 : 從原數據計算出 MD5 值很容易.
抗修改性 : 對原數據進行任何改動,哪怕只修改一個字節,所得到的 MD5 值都有很大區別.
弱抗碰撞 : 已知原數據和其 MD5 值,想找到一個具有相同 MD5 值的數據(即僞造數據)是非常困難的.
強抗碰撞: 想找到兩個不同數據,使他們具有相同的 MD5 值,是非常困難的
MD5 應用
一致性驗證:MD5將整個文件當做一個大文本信息,通過不可逆的字符串變換算法,產生一個唯一的MD5信息摘要.就像每個人都有自己獨一無二的指紋,MD5對任何文件產生一個獨一無二的數字指紋.
利用 MD5 來進行文件校驗,被大量應用在軟件下載站,論壇數據庫,系統文件安全等方面(是否認爲添加木馬,篡改文件內容等).百度‘MD5’第一個網站進去,利用數據庫僞解密,即反查詢
數字簽名;
安全訪問認證;
使用方法
利用 MD5 對字符串進行加密
NSString *password = @"WangPengfei";
password = [password md5String];
NSLog(@"password1:%@", password);
加鹽:可以保證 MD5加密之後更加安全
NSString *salt = @"234567890-!@#$%^&*()_+QWERTYUIOP{ASDFGHJKL:XCVBNM<>";
[password stringByAppendingString:salt];
password = [password md5String];
NSLog(@"password2:%@", password);