iOS开发技术讨论swift编程开发iOS Developer

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

2016-08-12  本文已影响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];

注意

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

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

上一篇下一篇

猜你喜欢

热点阅读