md5加密base64加密解密
来源:互联网 发布:淘宝卖家网页制作 编辑:程序博客网 时间:2024/05/22 03:26
// MD5 加密是一种不可逆的加密算法<可以加密不可以解密> ; 任意长度的字符经过 MD5加密之后长度一致; 相同的字符串任何时候经过MD5加密之后生成的字符串是一样的; 原有字符串发生一点点的改变,经过 MD5 加密之后,大不一样<说明 MD5 加密难有规律可循>
- (void)MD5Secrity{
// 需要加密的源字符串
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"1.png"], 1.0);
// 使用 base64编码加密之后将 NSData 类型转化为字符串
NSString *sourceString = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
// 由于 MD5 加密相关的函数是 C语言函数,所以我们需要将OC字符串转化为 C语言字符串
const char *str = sourceString.UTF8String;
// 创建一个 char 类型数组来存放加密好的字符
unsigned char resut [CC_MD5_DIGEST_LENGTH];
// 计算 MD5 值
// 第一个参数:需要执行的原数据
// 都二个参数:需要加密的数据的大小
// 第三个参数:加密好之后的数据
CC_MD5(str, (CC_LONG)strlen(str), resut);
// 声明可变的字符串, 用来存放已经加密好的 C 语言字符串。
NSMutableString *resultMString = [[NSMutableString alloc] init];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
NSString *itemStr = [NSString stringWithFormat:@"%02X", resut[i]]; //大小写背包代表大小写加密
[resultMString appendString:itemStr];
}
// 加密好之后的密文
NSLog(@"resultString ----- %@", resultMString);
}
#pragma mark 加密 NSData 类型
- (void) MD5DataSecrity{
// 将图片转化为 NSData类型
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"1.png"], 1.0);
// 创建 MD5 变量
CC_MD5_CTX md5;
// 初始化 MD5 变量
CC_MD5_Init(&md5);
// 准备 MD5 加密
// 第一个参数:
// 第二个参数:C语言的二进制类型
// 第三个参数:imageData 的长度
CC_MD5_Update(&md5, imageData.bytes, (CC_LONG)imageData.length);
// 结束 MD5 加密
// 创建一个 unsigned char* 字符数组<根据长度> 用来存放加密好的数据
unsigned char result [CC_MD5_DIGEST_LENGTH];
// result 是一个指针直线给字符数组的首地址
CC_MD5_Final(result, &md5);
// 创建OC可变字符串用来接收最终的数据
NSMutableString *endString = [[NSMutableString alloc] initWithCapacity:CC_MD5_DIGEST_LENGTH];
for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[endString appendFormat:@"%02x", result[i]];
}
NSLog(@"%d",CC_MD5_DIGEST_LENGTH);
NSLog(@"endString ------- %@", endString);
}
// 将NSData 进行加密的两种方式:1、对应 C的二进制类型 bytes 2、对应 C 的字符数组类型
/***
* base64 加密 可逆加密方式 用于数据传输和存储的时候 eg.音频 视频 图像 的存储和传输
* 通常通过base64 将元数据转化为字符串类型:一方面便于传输和存储,另一方面也进行了加密
*/
#pragma mark base64 加密和解密
- (NSString *)base64EncodingWithSourceData:(NSData *)sourceData{
NSString *base64ResultStr = [sourceData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return base64ResultStr;
}
// 参数为base64 加密之后的字符串
- (NSData *)base64DecodingWithString:(NSString *)base64String{
// data 的 *具体数据类型看数据 eg. 视频数据,音频数据,图片数据
NSData *base64ResultData = [[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters];
// eg.图片类型
// UIImage *image = [UIImage imageWithData:base64ResultData];
// NSLog(@"image-------- %@", image);
return base64ResultData;
- md5加密base64加密解密
- md5加密解密 Base64加密解密
- MD5 base64 sha1 加密,解密
- Java MD5 Base64加密解密
- md5加密,Base64加密解密,SHA1生成
- JAVA数据加密——MD5加密,SHA加密,BASE64解密,BASE64加密,HMAC加密
- 加密解密类库集--Cryptography、CRC32、MD5、BASE64
- IOS 加密解密(AES、DES、base64、md5)
- SHA1 MD5 BASE64 AES 加密解密
- Android---MD5+BASE64+DES3加密解密
- golang实现md5、RSA、base64 加密解密
- SHA1 MD5 BASE64 AES 加密解密
- JAVA中MD5加密和Base64加密解密算法
- MD5加密 Base64加密和解密算法 java
- 【iOS】MD5(加密)/AES/Base64加密和解密
- iOS MD5(加密)/AES/Base64加密和解密
- Java-Base64加密&&MD5加密
- MD5 加密 和Base64加密
- Spring纯简单java对象切面
- ForkJoinTask以及实现callable接口创建线程的学习
- HDU5478 Can you find it (快速幂)
- 自定义数组的增删改查(以及Arrays类)
- 关于对接rtx推送通知
- md5加密base64加密解密
- Android ListView 弹性滚动简单实现
- Android学习笔记032之数据存储—文件存储读取
- $x输出什么?
- 抽屉原理简单应用 POJ 2356 POJ 3370
- 第三届中国云计算用户大会笔记和心得
- Android初学之ViewPager
- 如何使用appverifier?
- Exception sending context initialized event to listener instance of class org.springframework.web.co