MD5加密(加强版)

Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.

在开发中,如果我们用HTTP发送请求的话,或多或少会涉及到用户的账户信息,这个时候我们可以用MD5对用户的信息进行加密,下面本菜菜推荐几种常用的加密方法^_^

就是普通的用md5加密
先在项目中导入MD5的类,github上应该有,不过我已经整合到项目里面,最后会放入下载地址.

    //测试用的密码
    NSString*passWord = @"12345678";
    //进行加密
    NSString*keyString = [passWord md5String];
    NSLog(@"%@",keyString);

但是发现这种太简单,还是很容易被百度的md5"暴力破解"......
所以又多了三种方法.

加盐

要加密的密码 + 一个复杂的字符串,防止用户输入的密码过于简单

HMAC

要加密的密码 + 一个字符串进行混合
再 md5 计算
把计算的结果 + 要加密的密码再次混合
再进行 md5 计算

时间戳密码 这种方式是最安全的

把key(传给服务器的秘钥) 用md5加密
把要加密的密码和之前用md5加密后的key再进行hmac加密
从服务器获取时间
第二步产生的hmac+时间混合 再和第一次产生的key值进行hmac加密

但是楼主发现这几个写法实现太繁琐,没什么技术含量,所以就把它们封装到一个类中,只要创建这个类,就能一句话加密.
当然,楼主这样也是很菜滴~

demo下载地址就放在后边了,里边详细写了加密原理和步骤,下面就简单的介绍一下封装后的效果

代码示范:

使用前先导入头文件:


1.png

1.加盐方式

     //创建对象
    MM_MD5*md5 = [MM_MD5 new];
    //传入加密的密码和要加入的"盐"
    NSString*passWordWithSald = [md5 getPassWord:@"123" andFixString:@"%$@&bb"];
    NSLog(@"%@",passWordWithSald);

2.HMAC

    //创建对象
    MM_MD5*md5 = [MM_MD5 new];
    //传入加密的密码和要混合的字符串
    NSString*passWordWithSald = [md5 getPassWordHmac:@"123456" andFixString:@"348fjfh&G"];
    NSLog(@"%@",passWordWithSald);

3.时间戳密码

     //创建对象
    MM_MD5*md5 = [MM_MD5 new];
    //传入加密的密码和秘钥 以及服务器地址,要从服务器上获取时间
    NSString*passWordWithSald = [md5 getPassWord:@"123456" andkey:@"key" andTimeWithUrlString:@"xxxxxxx"];
    NSLog(@"%@",passWordWithSald);

好啦,就这么简单,是不是比以前要简单许多?

楼主github地址:

https://github.com/YMS1230/YMS_MD5_demo.git

大家多多关注呀~



文/The_boy(简书作者)
原文链接:http://www.jianshu.com/p/83cd474132cc
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Studio .NET VB编程语言 MD5(DES) 8位密钥加密或解密文件function源代码 压缩包 : MD5 skey8位加密(文件).zip 列表 MD5 skey8位加密(文件)/ MD5 skey8位加密(文件)/bin/ MD5 skey8位加密(文件)/Form1.Designer.vb MD5 skey8位加密(文件)/Form1.resx MD5 skey8位加密(文件)/Form1.vb MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj.user MD5 skey8位加密(文件)/My Project/ MD5 skey8位加密(文件)/My Project/Application.Designer.vb MD5 skey8位加密(文件)/My Project/Application.myapp MD5 skey8位加密(文件)/My Project/AssemblyInfo.vb MD5 skey8位加密(文件)/My Project/Resources.Designer.vb MD5 skey8位加密(文件)/My Project/Resources.resx MD5 skey8位加密(文件)/My Project/Settings.Designer.vb MD5 skey8位加密(文件)/My Project/Settings.settings MD5 skey8位加密(文件)/obj/ MD5 skey8位加密(文件)/obj/Debug/ MD5 skey8位加密(文件)/obj/Debug/CoreCompileInputs.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferences.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).exe MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).pdb MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbprojResolveAssemblyReference.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).xml MD5 skey8位加密(文件)/obj/Debug/TempPE/ MD5 skey8位加密(文件)/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.exe MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Form1.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.pdb MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Resources.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.xml MD5 skey8位加密(文件)/obj/Release/ MD5 skey8位加密(文件).sln MD5 skey8位加密(文件).v11.suo

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值