iOS加密(MD5加密和HAMC加密)

释放双眼,带上耳机,听听看~!

MD5加密

一:首先自己创建一个分类

 

二:在.h文件里写一个加密方法的声名

- (NSString *)stringToMD5:(NSString *)str;

三:.m文件里

1.先将加密的库导进来

#import <CommonCrypto/CommonCrypto.h>

 

2.对加密方法进行实现

- (NSString *)stringToMD5:(NSString *)str

{

    constchar *fooData = [strUTF8String];

 

//2.然后创建一个字符串数组,接收MD5的值

 

  unsignedchar result[CC_MD5_DIGEST_LENGTH];

 

 

//3.计算MD5的值,这是官方封装好的加密方法:把我们输入的字符串转换成16进制的32位数,然后存储到result中

    CC_MD5(fooData, (CC_LONG)strlen(fooData), result);

 

/**

第一个参数:要加密的字符串

第二个参数:获取要加密字符串的长度

第三个参数:接收结果的数组

*/

 

//4.创建一个字符串保存加密结果

    NSMutableString *saveResult = [NSMutableStringstring];

 

 

//5.从result数组中获取加密结果并放到 saveResult中

  for (int i =0; i <CC_MD5_DIGEST_LENGTH;
i++) {

        [saveResult appendFormat:@"%02x", result[i]];

    }

    /*

     x表示十六进制,%02X 意思是不足两位将用0补齐,如果多余两位则不影响

     NSLog("%02X", 0x888);  //888

     NSLog("%02X", 0x4); //04

     */

    return saveResult;

}

 

 

四:控制器里调用


五:输出结果

六:这样子直接MD5加密会被破解出来

因为MD加密后的值是一个32位的唯一值,比如说123456加密后的值是auysvdajbdajbd1231,这是是唯一的,不管加密多少次,结果都是auysvdajbdajbd1231

解决方法:

使用MD5加盐方法,即定义一个静态的字符串static值,在MD5加密之前先将static值拼接在密码后面再进行加密,这样就安全系数提高

 

HAMC加密

和MD5一样是创建一个分类,在.h里面声名,.m里面实现

#pragma mark – HMAC 散列函数

- (NSString *)hmacMD5StringWithKey:(NSString *)key {

    constchar *keyData = key.UTF8String;

    constchar *strData =self.UTF8String;

    uint8_t buffer[CC_MD5_DIGEST_LENGTH];

    

    CCHmac(kCCHmacAlgMD5, keyData, strlen(keyData), strData, strlen(strData), buffer);

    

    return [self stringFromBytes:buffer length:CC_MD5_DIGEST_LENGTH];

}

 

HAMC加密思路:

1、注册账号时向服务器申请一个随机生成唯一的key值,将key值保存的手机本地(利用钥匙串)和服务器

2、利用key值对密码进行加密,并将加密后的密码保存在服务器

3、登录的时候再一次利用保存在本地的key值进行HAMC加密,与服务器进行对比

提示:如果换了手机或是换了账号,就向服务器请求key值下来

 

 

MD5+HAMC加密(三种里最安全的做法)

1、利用hamc加密注册账号密码:(pwd+key).hamc = PWD

2、登录的时候(PWD + 从服务器拿到的当前时间).md5加密传送给服务器

3、服务器进行同样的(PWD + 从服务器拿到的当前时间).md5操作后进行对比,如果不一样,再进行一次时间为提前一分钟的判断,因为我们再登录的时候可能会是在某一分钟的最后几秒


 

人已赞赏
iOS文章

iOS获取本地时间和APP中显示时间XX分钟/小时之前

2020-3-30 13:52:44

iOS文章

iOS模态视图从第N个视图返回到第一个视图

2020-3-30 15:03:02

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索