百度百科 MD5加密
MD5使用场景 1.登录注册 2.签名sign
MD5加密是不可逆的
- 首先需要导入头文件
#import <Foundation/Foundation.h> - 对
Data
类型数据的加密算法
//1.需要MD5变量并且初始化
CC_MD5_CTX md5;
CC_MD5_Init(&md5);
//2.开始加密
//第一个参数:对MD5变量取地址(要为该变量指向的内存空间存储计算好的数据)
//第二个参数:需要计算的源数据
//第三个参数:数据的长度 需要转化为CC_LONG类型(32位整形)
CC_MD5_Update(&md5, sourceData.bytes,(CC_LONG)sourceData.length);//sourceData为需要加密的data数据
//3.声明一个无符号的字符数组用来盛放转换好的数据
unsigned char result[CC_MD5_DIGEST_LENGTH];
//4.将数据放入数组
CC_MD5_Final(result, &md5);
//5.将result中的字符拼接为OC语言中的字符串,以便使用
NSMutableString *resultStr = [[NSMutableString alloc] init];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[resultStr appendFormat:@"%02X",result[i]];
}
//resultStr为加密后得到的字符串
- 对
string
类型的数据的加密算法
//1.由于MD5加密都是通过C级别的函数来计算,所以要将加密的字符串转化的C语言字符串.
const char * cStr = sourceString.UTF8String;
//2.创建一个C语言字符数组用来接收加密之后的字符
unsigned char result[CC_MD5_DIGEST_LENGTH];
//3.MD5计算(加密)
//第一个参数:需要加密的字符串
//第二个参数:需要加密的字符串的长度 需要转化为CC_LONG类型(32位整形)
//第三个参数:加密完成后的字符串存储的地方
CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
//4.将加密完成的字符拼接起来使用(16进制)
//声明一个可变类型 用来拼接转换好的字符
NSMutableString *resultStr = [[NSMutableString alloc] init];
//遍历result数组,取出所有的字符来拼接
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[resultStr appendFormat:@"%02x",result[i]];
}
//resultStr为加密后得到的字符串
//如何让MD5更安全
//1.加盐
//2.先加密 在打乱顺序
网友评论