iOS開發——用戶信息使用MD5加密

iOS開發——用戶信息使用MD5加密

MD5說明:MD5是安卓和ios系統中最常用的加密方式,其特點是加密後生成32位的字符串。且加密後的數據不可逆,網絡上的暴力破解網頁只是將MD5加密後生成的32wei位字符串與自行生成的密碼字符串進行比對,字符串相同就輸出對應的密碼。這種方式只能破解簡單的密碼。有複雜數據的密碼很難進行破解。因此用戶的信息安全可以得到保證。因爲MD5碼是不可逆的,所以用戶密碼忘記之後只能設置新的密碼,不能取回原來的密碼。爲了加強MD5加密的安全性,系統提供了加鹽的方法,更進一步保證了數據的安全性。

MD5特點:

對任意的數據進行計算,生成固定長度的字符串.32個字符.

一般用來加密密碼.

有時候也用來驗證文件下載時,是否被篡改過.

文件下載完成之後計算文件的md5值,與服務器計算的MD5值比較,如果不一樣那麼這個文件在下載的過程中被篡改了.

使用終端命令獲取加密後的MD5

#得到文件的MD5值

$ md5 文件名

#得到字符串的MD5值

md5 -s "string"

MD5加密方案,和實現步驟:

先導入分類

#import"NSString+Hash.h"

方案一 :

直接MD5計算

psd = [psd md5String];

Base64與MD5的對比:

Base64編碼 : "加密"簡單,算法可逆.毫無安全性可言.不能用來加密密碼.

MD5 : 加密過程複雜,算法不可逆,安全性高,常用來加密密碼等用戶的敏感信息.但是簡單的密碼MD5加密之後可以暴力破解.

暴力破解網站 :http://www.cmd5.com/

方案二 : 密碼加鹽

如果原始密碼過於簡單,直接進行MD5加密是很容易被暴力破解的.

爲了增強密碼的安全性,防止加密的密碼被暴力破解,可以向原始密碼中加鹽.

鹽 : 服務器端和客戶端約定的一個字符串.

MD5+鹽 : 原始密碼+鹽拼接出新的密碼字符串,再進行MD加密.

以上爲加一勺鹽,比單純的直接MD5加密安全性要高.

鹽要足夠的鹹,越鹹越安全.

//

鹽。和加鹽加密的方法。

NSString*salt = @"123zxcASD!@#";

psd=[[psd stringByAppendingString:salt] md5String];

方案三 : HMAC

HMAC : 加兩勺鹽.加兩勺鹽的密碼加密強度比加一勺鹽要高.

原理 : 原始密碼+鹽進行MD5計算,結算的結果+原始密碼再進行MD5計算.

//鹽

NSString *salt = @"123zxcASD!@#";

psd=[psd hmacMD5StringWithKey:salt];

注意

不必要用不可逆的加密算法加密密碼並保存到本地.因爲不可逆的加密算法加密的數據不能還原回來。保存到本地的密碼無法正常使用。

蘋果提供了鑰匙串專門保存用戶的私密信息到本地.蘋果保存鑰匙串的文件並不公開,這是爲了進一步保證用戶信息的安全性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章