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);
共有 0 条评论