初級:使用MD5對字符串進行加密操做

加密技術在企業數據安全中的應用:算法

大型 企業管理軟件的應用愈來愈普遍,企業數據平臺涉及局域網、 廣域網、 Internet等,在各種系統中保存的企業關鍵數據量也愈來愈大,許多數據須要保存數十年以上,甚至是永久性保存,關鍵業務數據是企業生存的命脈和寶貴 的資源,數據安全性問題愈來愈突出。如何加強企業軟件系統的安全性、保密性、真實性、完整性,成爲每一位軟件開發人員關注的焦點。從保護數據的角度講,對 數據安全這個廣義概念,能夠細分爲三部分: 數據加密、數據傳輸安全和 身份認證管理。
  1. 數據加密就是按照肯定的密碼算法把敏感的明文數據變換成難以識別的密文數據,經過使用不一樣的密鑰,可用同一加密算法把同一明文加密成不一樣的密文。當須要時,可以使用密鑰把密文數據還原成明文數據,稱爲解密。這樣就能夠實現數據的保密性。數據加密被公認爲是保護數據傳輸安全唯一實用的方法和保護存儲數據安全的有效方法,它是數據保護在技術上最重要的防線。
  2. 數據傳輸安全是指數據在傳輸過程當中必需要確保數據的安全性,完整性和不可篡改性。
  3. 身份認證的目的是肯定系統和網絡的訪問者是不是合法用戶。主要採用登陸密碼、表明用戶身份的物品(如智能卡IC卡等)或反映用戶生理特徵的標識鑑別訪問者的身份。

加密算法有不少種,在iOS開發當中,MD5是咱們經常使用的摘要算法.編程

MD5:MD5即Message-Digest Algorithm 5(信息-摘要算法5),用於確保信息傳輸完整一致。是計算機普遍使用的雜湊算法之一(又譯摘要算法哈希算法),主流編程語言廣泛已有MD5實現。將數據(如漢字)運算爲另外一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD二、MD3MD4數組

 

MD5算法具備如下特色

 

一、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。

 

二、容易計算:從原數據計算出MD5值很容易。

 

三、抗修改性:對原數據進行任何改動,哪怕只修改1個字節,所獲得的MD5值都有很大區別。

 

四、強抗碰撞:已知原數據和其MD5值,想找到一個具備相同MD5值的數據(即僞造數據)是很是困難的。

 

MD5的做用是讓大容量信息在用 數字簽名軟件簽署私人 密鑰前被" 壓縮"成一種保密的格式(就是把一個任意長度的字節串變換成必定長的 十六進制數字串)。除了MD5之外,其中比較有名的還有 sha-1RIPEMD以及Haval等。
 
接下來我麼就直接來實踐一下,用MD5進行加密操做:
首先須要引入類庫#import <CommonCrypto/CommonCrypto.h>才能調用MD5進行操做.
 1 #pragma mark - 加密字符串
 2     
 3     //1.準備一個字符串,用於加密
 4     NSString *str = @"I Love U"; //同一個字符串進行MD5加密出來的內容相同
 5     //2.由於MD5是基於C語言的,因此咱們須要將字符串進行編碼
 6     const char *data = [str UTF8String];
 7     //3.加密後相關的內容,需使用字符串數組去存取(16進制,32位)
 8 //    CC_MD5_DIGEST_LENGTH表示長度的
 9     unsigned char result [CC_MD5_DIGEST_LENGTH];
10     //4.進行MD5加密
11     //參數一:你要加密的內容data
12     //參數二:要加密的data的一個長度
13     //參數三:MD5
14     CC_MD5(data, (CC_LONG)strlen(data), result);
15     
16     //5.建立可變字符串,保存結果
17     NSMutableString *mutableString = [NSMutableString string];
18     //6.遍歷結果數組,而後添加到可變字符串中
19     for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
20         //16進制格式修飾符%x,02表示不足2位的時候,前面補0
21         [mutableString appendFormat:@"%02x", result[i]];
22     }
23     NSLog(@"%@", mutableString);

固然你也能夠將MD5封裝起來.建立一個類目,方便下次使用.內部實現就是上面的步驟.安全

相關文章
相關標籤/搜索