字符串加密
// 1. 准备好一个字符串 NSString *string = @"asdasfaf"; // 2. MD5加密是基于C语言的. 所以要把这个字符串转化成C的字符串 const char *fooData = [string UTF8String]; // 3. 创建一个字符串数组 接受MD5的值 unsigned char result[CC_MD5_DIGEST_LENGTH]; // 4. 计算MD5的值 // 第一个参数 : 表示要加密的字符串 // 第二个参数 : 获取要加密字符串的长度 // 第三个参数 : 接受结果的数组 CC_MD5(fooData, (CC_LONG)strlen(fooData), result); // 5. 保存结果的字符串 NSMutableString *resultString = [NSMutableString string]; // 6. 从result数组中获取最终结果 for ( int i = 0 ; i < CC_MD5_DIGEST_LENGTH; i ++) { [resultString appendFormat:@"%02X", result[i]]; } NSLog(@"%@", resultString);
数组加密
NSArray *array = @[@"1", @"2"]; NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]; NSString *savePath = [document stringByAppendingPathComponent:@"array.plast"]; [array writeToFile:savePath atomically:YES]; NSData *data = [NSData dataWithContentsOfFile:savePath]; // 1. 创建一个MD5的对象 CC_MD5_CTX md5; // 2. 初始化MD5的对象 CC_MD5_Init(&md5); // 3. 准备MD5的加密 CC_MD5_Update(&md5, data.bytes, (CC_LONG)data.length); // 4. 准备一个字符串数组, 存储MD5加密之后的数据 unsigned char result[CC_MD5_DIGEST_LENGTH]; // 5. 结束MD5的加密 CC_MD5_Final(result, &md5); NSMutableString *resultString = [NSMutableString string]; for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i ++) { [resultString appendFormat:@"%02X", result[i]]; } NSLog(@"result == %@", resultString);}