IOS开发——用户信息使用MD5加密

作者: 断风刀 | 来源:发表于2016-08-12 00:43 被阅读541次

    MD5说明:MD5是安卓和ios系统中最常用的加密方式,其特点是加密后生成32位的字符串。且加密后的数据不可逆,网络上的暴力破解网页只是将MD5加密后生成的32wei位字符串与自行生成的密码字符串进行比对,字符串相同就输出对应的密码。这种方式只能破解简单的密码。有复杂数据的密码很难进行破解。因此用户的信息安全可以得到保证。因为MD5码是不可逆的,所以用户密码忘记之后只能设置新的密码,不能取回原来的密码。为了加强MD5加密的安全性,系统提供了加盐的方法,更进一步保证了数据的安全性。

    MD5特点:

    对任意的数据进行计算,生成固定长度的字符串.32个字符.

    一般用来加密密码.

    有时候也用来验证文件下载时,是否被篡改过.

    文件下载完成之后计算文件的md5值,与服务器计算的MD5值比较,如果不一样那么这个文件在下载的过程中被篡改了.

    使用终端命令获取加密后的MD5

    #得到文件的MD5值

    $ md5 文件名

    #得到字符串的MD5值

    md5 -s "string"

    MD5加密方案,和实现步骤:

    先导入分类

    #import"NSString+Hash.h"

    方案一 :

    直接MD5计算

    psd = [psd md5String];

    Base64与MD5的对比:

    Base64编码 : "加密"简单,算法可逆.毫无安全性可言.不能用来加密密码.

    MD5 : 加密过程复杂,算法不可逆,安全性高,常用来加密密码等用户的敏感信息.但是简单的密码MD5加密之后可以暴力破解.

    暴力破解网站 :http://www.cmd5.com/

    方案二 : 密码加盐

    如果原始密码过于简单,直接进行MD5加密是很容易被暴力破解的.

    为了增强密码的安全性,防止加密的密码被暴力破解,可以向原始密码中加盐.

    盐 : 服务器端和客户端约定的一个字符串.

    MD5+盐 : 原始密码+盐拼接出新的密码字符串,再进行MD加密.

    以上为加一勺盐,比单纯的直接MD5加密安全性要高.

    盐要足够的咸,越咸越安全.

    //

    盐。和加盐加密的方法。

    NSString*salt = @"123zxcASD!@#";

    psd=[[psd stringByAppendingString:salt] md5String];

    方案三 : HMAC

    HMAC : 加两勺盐.加两勺盐的密码加密强度比加一勺盐要高.

    原理 : 原始密码+盐进行MD5计算,结算的结果+原始密码再进行MD5计算.

    //盐

    NSString *salt = @"123zxcASD!@#";

    psd=[psd hmacMD5StringWithKey:salt];

    注意

    不必要用不可逆的加密算法加密密码并保存到本地.因为不可逆的加密算法加密的数据不能还原回来。保存到本地的密码无法正常使用。

    苹果提供了钥匙串专门保存用户的私密信息到本地.苹果保存钥匙串的文件并不公开,这是为了进一步保证用户信息的安全性。

    相关文章

      网友评论

      • Chenfy:Md5并非加密算法,base64也非加密算法,只是编码技术
      • 8df23361d8fe:不可靠了md5

      本文标题:IOS开发——用户信息使用MD5加密

      本文链接:https://www.haomeiwen.com/subject/zybssttx.html