--MD5 数据加密--

来源:互联网 发布:广西南宁移动网络缴费 编辑:程序博客网 时间:2024/06/04 18:40

MD5: Message Digest Algorithm MD5
为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

MD5算法是哈希算法的一种 其具有以下特点:
1.压缩性 任意长度的数据,算出的MD5值长度都是固定的(16进制, 32位)。
2.容易计算 从源数据计算出MD5值很容易
3.抗修改性 对原数据进行任何改动,哪怕只改1个字节,所得到的MD5值都有跟大区别。
4.强抗碰撞性 已知原数据和MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

先引入头文件 (此为系统文件)

#import <CommonCrypto/CommonCrypto.h>

接着上代码

#pragma mark - 加密字符串    //准备一个字符串    NSString *str = @"I LOVE YOU";//同一个字符串进行MD5加密出来的内容类似    //2.因为MD5是C语言的 所以我们需要将字符串进行编码    const char *data = [str UTF8String];    //3.使用字符串数组去存取加密后相关的内容    //CC_MD5_DIGEST_LENGTH表述长度    unsigned char result [CC_MD5_DIGEST_LENGTH];    //4.进行MD5加密    //参数1  要加密的内容    //参数2  要加密的DATA的一个长度    //参数3 MD5    CC_MD5(data, (CC_LONG)strlen(data), result);    //5.创建可变字符串 保存结果    NSMutableString *mutableString = [NSMutableString string];    //6.遍历结果数组 然后添加到可变字符串中    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {        //16进制需要大家知道格式修饰符(%x代表16进制 02当不足两位的时候, 前边补零 当足够两位的时候 不影响)        [mutableString appendFormat:@"%02x", result[i]];    }    NSLog(@"%@", mutableString);
#pragma mark - 加密NSData    //需求 创建一个数组 数组中存储元素 将这个数组写入沙盒里    //1.创建一个数组    NSArray *array = @[@"小暖心", @"肉rr"];    //2.寻找沙盒路径    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];    //3.拼接路径    NSString *path = [documentPath stringByAppendingString:@"array.plist"];    //4.写入    [array writeToFile:path atomically:YES];    //从沙盒中取出NSData类型的数据    NSData *data = [NSData dataWithContentsOfFile:path];    NSLog(@"%@", data);    //NSData类型数据加密过程    //1.创建MD5对象    CC_MD5_CTX md5;    //2.初始化md5对象    CC_MD5_Init(&md5);    //3.准备开始进行数据加密    CC_MD5_Update(&md5, data.bytes, (CC_LONG)data.length);    //4.准备一个字符串数组用来存储结果    unsigned char result[CC_MD5_DIGEST_LENGTH];    //结束加密    CC_MD5_Final(result, &md5);    //5.差UN构建一个可变的字符串    NSMutableString *string = [NSMutableString string];    //6.遍历数组给可变字符串赋值    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {        [string appendFormat:@"%x", result[i]];    }    NSLog(@"%@", string);}
0 0
原创粉丝点击