国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

iOS開發(fā)日記8-MD5加密

2019-11-14 18:28:57
字體:
供稿:網(wǎng)友

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

md5加密和SHA-1加密是計算機(jī)世界非常重要的兩種加密算法.MD5加密通常用于對NSString的加密,而SHA-1加密通常用于對URL的加密,今天和大家重點(diǎn)分享一下MD5加密的方法.

使用MD5加密,我們需要給NSString增加一個類別,并導(dǎo)入<CommonCrypto/CommonDigest.h>頭文件.

.h中的內(nèi)容:

#import <Foundation/Foundation.h>

#import <CommonCrypto/CommonDigest.h>

 

@interface NSString (MD5encrypt)

-(NSString *) md5HexDigest;

@end

 .m中的內(nèi)容:

#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); 這里的用法明顯是錯誤的,當(dāng)original_str中包含空字符(/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

現(xiàn)在的MD5已不再是絕對安全,對此,可以對MD5稍作改進(jìn),以增加解密的難度:

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

2.先加密,后亂序:先對明文進(jìn)行MD5,然后對加密得到的MD5串的字符進(jìn)行亂序

總之宗旨就是:黑客就算攻破了數(shù)據(jù)庫,也無法解密出正確的明文.

/** *  直接用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; }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 威海市| 淳化县| 班玛县| 南漳县| 龙海市| 镇赉县| 镇雄县| 缙云县| 奈曼旗| 布拖县| 黔西县| 隆化县| 金坛市| 肇州县| 文登市| 凤城市| 永福县| 缙云县| 全州县| 泗阳县| 靖西县| 金山区| 礼泉县| 荥阳市| 密山市| 民权县| 永登县| 阿荣旗| 花莲县| 本溪市| 临城县| 阜宁县| 英吉沙县| 改则县| 合江县| 河津市| 潼南县| 新乐市| 江都市| 河东区| 马龙县|