iOS - 数据加密

作者:Mitchell 

一、简介

  • 在iOS开发中应用最广泛的数据加密方式就是 MD5 加密,由于其加密的不可逆性,经常用于用户数据的加密。
  • 什么是MD5
    • 全称是 Message Digest Algorithm5 消息摘要算法第5版
  • MD5特点
    • 输入两个不同的明文不会得到相同的输出值
    • 根据输出值,不能得到原始的明文,即其过程不可逆
  • MD5应用
    • 由于MD5有很好的安全性,
  • MD5改进
    • 现在MD5不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度
    • 加盐:在明文的固定位置插入字符串,然后再进行MD5
    • 先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序
    • 目的:即便攻破了数据库,也无法拿到真正的密码。
  • 封装:以下是对于 MD5 的封装
 - (NSString *)md5String
{
    const char *string = self.UTF8String;
    int length = (int)strlen(string);
    unsigned char bytes[CC_MD5_DIGEST_LENGTH];
    CC_MD5(string, length, bytes);
    return [self stringFromBytes:bytes length:CC_MD5_DIGEST_LENGTH];
}
{
    NSMutableString *mutableString = @"".mutableCopy;
    for (int i = 0; i < length; i++)
        [mutableString appendFormat:@"%02x", bytes[i]];
    return [NSString stringWithString:mutableString];
}

二、企业中的应用

  • 用户登录密码传递,发起请求,后台返回随机生成的字符串,后台与客户端协商字符串的插入位置,将拼接好的字符串经过MD5加密(可能多次),再返回给后台,后台根据返回的数据和数据库中的数据对比判断数据是否正确。

你可能感兴趣的:(iOS - 数据加密)