iOS開發日記8-MD5加密,ios日記8-md5

來源:互聯網
上載者:User

iOS開發日記8-MD5加密,ios日記8-md5

今天博主有一個密碼加密的需求,遇到了一些困痛點,在此和大家分享,希望能夠共同進步.

MD5加密和SHA-1加密是電腦世界非常重要的兩種密碼編譯演算法.MD5加密通常用於對NSString的加密,而SHA-1加密通常用於對URL的加密,今天和大家重點分享一下MD5加密的方法.

使用MD5加密,我們需要給NSString增加一個類別,並匯入<CommonCrypto/CommonDigest.h>標頭檔.

.h中的內容:

#import <Foundation/Foundation.h>

#import <CommonCrypto/CommonDigest.h>

 

@interface NSString (MD5encrypt)

-(NSString *) md5HexDigest;

@end

 .m中的內容:

#import "NSString+MD5encrypt.h"

 

@implementation NSString (MD5encrypt)

-(NSString *) md5HexDigest

{

    const char *original_str = [self UTF8String];

    unsigned char result[CC_MD5_DIGEST_LENGTH];

    // CC_MD5(original_str, strlen(original_str), result); 這裡的用法明顯是錯誤的,當original_str中包含Null 字元(\0)時

    CC_MD5(original_str, (unsigned int)self.length, result);

    NSMutableString *hash = [NSMutableString string];

    for (int i = 0; i < 16; i++)

        [hash appendFormat:@"%02X", result[i]];

    return [hash lowercaseString];

}

@end

現在的MD5已不再是絕對安全,對此,可以對MD5稍作改進,以增加解密的難度:

1.加鹽(Salt):在明文的固定位置插入隨機串,然後再進行MD5

2.先加密,後亂序:先對明文進行MD5,然後對加密得到的MD5串的字元進行亂序

總之宗旨就是:駭客就算攻破了資料庫,也無法解密出正確的明文.

/** *  直接用MD5加密 */- (NSString *)digest:(NSString *)str {    NSString *anwen = [str md5String];
NSLog(@"%@ - %@", str, anwen); return anwen; } /** * 加鹽 */- (NSString *)digest2:(NSString *)str { str = [str stringByAppendingString:Salt]; NSString *anwen = [str md5String]; NSLog(@"%@ - %@", str, anwen); return anwen; } /** * 多次MD5 */- (NSString *)digest3:(NSString *)str{ NSString *anwen = [str md5String]; anwen = [anwen md5String]; NSLog(@"%@ - %@", str, anwen); return anwen; }
/** * 先加密, 後亂序,推薦使用 */- (NSString *)digest4:(NSString *)str { NSString *anwen = [str md5String]; NSString *header = [anwen substringToIndex:2]; NSString *footer = [anwen substringFromIndex:2]; anwen = [footer stringByAppendingString:header]; NSLog(@"%@ - %@", str, anwen); return anwen; }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.