数据安全之MD5的简单使用

MD5 消息摘要算法第五版

计算机安全领域广泛使用的散列函数,具有:压缩性(MD5值长度都是固定的),容易计算,抗修改,强抗碰撞的特性
MD5---一般用于验证数据的完整性
MD5的使用
引入iOS SDK框架,用于加密

#import 

1.准备加密字符串

    NSString * string = @"I love my dear";

2.对字符串进行转码(MD5是基于C语言)

    const char * data = [string UTF8String];

3.使用系统函数
用字符串数组去存储加密后的相关内容

    unsigned char result[CC_MD5_DIGEST_LENGTH];

加密使用的函数

 //参数1:需要加密的内容  参数2:加密内容的长度  参数3:需要加密的长度
    CC_MD5(data, (CC_LONG)strlen(data), result);

4.创建可变字符串,保存结果

    NSMutableString * mutableStr = [NSMutableString string];

5.遍历结果数组,然后添加

for (int i = 0; i

MD5自己封装的使用

//在外部调用
+(NSMutableString *)stringMD5:(NSString *)string;

//导入框架
#import 

+(NSMutableString *)stringMD5:(NSString *)string{
    //1.将字符串进行转码
    const char *data = [string UTF8String];
    //2.加密结果长度
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    //3.进行加密
    CC_MD5(data, (CC_LONG)strlen(data), result);
    //4.创建可变字符串
    NSMutableString * mutableString = [NSMutableString string];
    for (int i = 0; i

外部的使用

#import "NSString+MD5.h"

 NSString * str = @"I love my dear";
 NSLog(@"%@",[NSString stringMD5:str]);

创建一个数组,数组中存储元素,并且将这个数组写入到沙盒当中,并加密

NSArray * array = @[@"1",@"2"];
    NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
    NSString *str = [path stringByAppendingPathComponent:@"hello.plist"];
    [array writeToFile:str atomically:YES];
    //读取
    NSData * data = [NSData dataWithContentsOfFile:str];

    //将数据进行加密
    //1.创建MD5对象
    CC_MD5_CTX md5;
    //2.初始化MD5对象
    CC_MD5_Init(&md5);
    //3.准备开始进行数据加密
    CC_MD5_Update(&md5, (data).bytes, (CC_LONG)data.length);
    
    //准备一个字符数组来存放结果
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    //保存结果
    CC_MD5_Final(result, &md5);
    //创建可变字符串,将result数组中的内容保存到字符串中
    NSMutableString * mutableString = [NSMutableString string];
    for (int i = 0; i

给图片进行加密

 //获得文件路径
    NSString * path = [[NSBundle mainBundle] pathForResource:@"1.jpg" ofType:nil];
    //创建data
    NSData * data = [NSData dataWithContentsOfFile:path];
    //加密
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    
    CC_MD5(data.bytes, (CC_LONG)data.length, result);
    //创建可变字符串用于存放密文
    NSMutableString * string = [NSMutableString string];
    for (int i = 0 ; i

你可能感兴趣的:(数据安全之MD5的简单使用)