MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经过MD5处理后看不到原文,是一种加密算法。MD5加密过程不可逆,所以使用比较安全。MD5可用于密码登录验证,把输入的密码转换成加密字符串,然后和数据库里对应的加密密码进行匹配,匹配一致就可以登录成功。开发之前需要和后端约定是否识别大小写。
苹果包装了MD5加密的方法,使用起来十分的方便。 使用之前需要导入头文件:#import<CommonCrypto/CommonDigest.h>。
//MD5加密方法
- (NSString *) md5:(NSString *) input {
// OC 字符串转换位C字符串
const char *cStr = [input UTF8String];
// 16位加密
unsigned char digest[CC_MD5_DIGEST_LENGTH];
// 1: 需要加密的C字符串
// 2: 加密的字符串的长度
// 3: 加密长度
CC_MD5( cStr, (CC_LONG)strlen(cStr), digest );
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++){
[output appendFormat:@"%02x", digest[i]];
}
// 返回一个32位长度的加密后的字符串
return output;
}
- (void)pressbtn:(id)sender {
//输入需要加密的字符串
NSString *str = self.text.text;
//调用MD5加密算法
NSString *result = [self md5:str];
NSLog(@"%@",result);
//label显示加密后的32位字符串
self.lab.text = result;
}
MD5解密网站:http://www.cmd5.com/。可以对加密的字符串进行测试。
显示如下图: