iOS之MD5加密、加盐

MD5加密:HASH算法一种、 是生成32位的数字字母混合码。
特点:
1、任意数据得出的MD5值长度都是32
2、对原数据进行任何改动,所得到的MD5值都有很大区别

应用:
主要运用在数字签名、口令加密等方面

MD5改进(加盐等):
现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度
加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5

写一个NSString分类,NSString+wxMD5

#import "NSString+wxMD5.h"
#import 

@implementation NSString (wxMD5)

+ (NSString *)getmd5Str:(NSString *)str
{
    //传入参数,转化成char
    const char *cStr = [str UTF8String];
    //开辟一个16字节的空间
    unsigned char result[16];
    /*
     extern unsigned char * CC_MD5(const void *data, CC_LONG len, unsigned char *md)官方封装好的加密方法
     把str字符串转换成了32位的16进制数列(这个过程不可逆转) 存储到了md这个空间中
     */
    CC_MD5(cStr, (unsigned)strlen(cStr), result);
    return [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
             result[0], result[1], result[2], result[3],
             result[4], result[5], result[6], result[7],
             result[8], result[9], result[10], result[11],
             result[12], result[13], result[14], result[15]
             ];
}
@end

md5解密网站:https://www.cmd5.com
使用示例

    NSString *str = @"123Man456";
    NSString *md5str = [NSString getmd5Str:str];
    NSLog(@"%@",md5str);
    //加盐后
    NSString *salt = @"asdkqwkfqlwflqfwlMAk";
    NSString *newStr = [str stringByAppendingString:salt];
    NSString *newMd5str = [NSString getmd5Str: newStr];
    NSLog(@"%@",newMd5str);

你可能感兴趣的:(iOS之MD5加密、加盐)