iOS - 資料加密

weixin_34124651發表於2015-09-10
作者:Mitchell 

一、簡介

  • 在iOS開發中應用最廣泛的資料加密方式就是 MD5 加密,由於其加密的不可逆性,經常用於使用者資料的加密。
  • 什麼是MD5
    • 全稱是 Message Digest Algorithm5 訊息摘要演算法第5版
  • MD5特點
    • 輸入兩個不同的明文不會得到相同的輸出值
    • 根據輸出值,不能得到原始的明文,即其過程不可逆
  • MD5應用
    • 由於MD5有很好的安全性,
  • MD5改進
    • 現在MD5不再是絕對安全,對此,可以對MD5稍作改進,以增加解密的難度
    • 加鹽:在明文的固定位置插入字串,然後再進行MD5
    • 先加密,後亂序:先對明文進行MD5,然後對加密得到的MD5串的字元進行亂序
    • 目的:即便攻破了資料庫,也無法拿到真正的密碼。
  • 封裝:以下是對於 MD5 的封裝
 - (NSString *)md5String
{
    const char *string = self.UTF8String;
    int length = (int)strlen(string);
    unsigned char bytes[CC_MD5_DIGEST_LENGTH];
    CC_MD5(string, length, bytes);
    return [self stringFromBytes:bytes length:CC_MD5_DIGEST_LENGTH];
}
{
    NSMutableString *mutableString = @"".mutableCopy;
    for (int i = 0; i < length; i++)
        [mutableString appendFormat:@"%02x", bytes[i]];
    return [NSString stringWithString:mutableString];
}

二、企業中的應用

  • 使用者登入密碼傳遞,發起請求,後臺返回隨機生成的字串,後臺與客戶端協商字串的插入位置,將拼接好的字串經過MD5加密(可能多次),再返回給後臺,後臺根據返回的資料和資料庫中的資料對比判斷資料是否正確。

相關文章