iOS MD5加密
来源:互联网 发布:淘宝宝贝关联怎么弄 编辑:程序博客网 时间:2024/06/12 00:13
将字符串进行MD5加密,返回加密后的字符串。
md5是不可逆的,至少现在是。它的作用是用于双边验证,即用于验证两个文件或者两段内容是否是一致的,因为两个一样的文件或者内容它们的md5值是一样的。所以有些文件下载工具,在下载完了之后都会进行验证,验证的方式就是md5。
#import <CommonCrypto/CommonDigest.h> // Need to import for CC_MD5 access
- 一,-(NSString *)md5:(NSString *)str {
- const char *cStr = [str UTF8String];//转换成utf-8
- unsigned char result[16];//开辟一个16字节(128位:md5加密出来就是128位/bit)的空间(一个字节=8字位=8个二进制数)
- CC_MD5( cStr, strlen(cStr), result);
- /*
- extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)官方封装好的加密方法
- 把cStr字符串转换成了32位的16进制数列(这个过程不可逆转) 存储到了result这个空间中
- */
- return [NSString stringWithFormat:
- @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
- result[0], result[1], result[2], result[3],
- result[4], result[5], result[6], result[7],
- result[8], result[9], result[10], result[11],
- result[12], result[13], result[14], result[15]
- ];
- /*
- x表示十六进制,%02X 意思是不足两位将用0补齐,如果多余两位则不影响
- NSLog("%02X", 0x888); //888
- NSLog("%02X", 0x4); //04
- */
- }
- 二,MD5加密算法多数用于验证,比如说密码匹配用的就是MD5加密后得到的数值。
- 输出方式用一个for循环来解决更为方便
- NSMutableString *Mstr = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
- for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++) {
- [Mstr appendFormat:@"%02X",result[i]];
- }
- return Mstr;
- MD5算法 不管是什么语言得到的结果都是一样的。
- 可能会有人遇到过ios客户端和java服务器端匹配MD5值会有不一样的,我猜测:并不是算 法有问题,可能是某一方求MD5值少了一步,直接这样搞定的
- NSMutableString *Mstr = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
- for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++) {
- [Mstr appendFormat:@"%d",(char)result[i]];
- }
- return Mstr;
------------------------------------------------------------华丽丽的分割线-------------------------------------------------
在做网络应用程序的时候, 时时刻刻要保证用户数据的安全, 因此要加密。
MD5算法在国内用的很多.
MD5算法的特点:
*同样的数据加密结果是一样的.(32个字符)
*不可逆的.(不能逆向解密)
*可用于文件校验/指纹识别.
MD5算法是公开的,iOS中已经包装好了MD5算法。
可以将其写成字符串的分类:
在iOS程序中对用户的登录数据进行加密存储非常重要。做到,即使数据被劫持,也无法还原出原始数据的地步。
一、普通MD5加密
太简单的MD5加密很容易被破解。一般在进行MD5加密时会使用“加佐料”的方法。
简单的MD5可到这个网站进行破解:www.cmd5.com
下面是进行MD5加密的方法: 其中token即为加的字符串,可以为任意长度的奇形怪状字符串。
二、更加高级的方法
用公钥和私钥的概念。
一个公钥(都知道),一个私钥(只有服务器自己知道).密码要动态变化才行.
*用户:用token+时间进行加密,传送给服务器
*服务器: 取出用户密码(存储时用私钥加过密),用时间+公钥等与客户端发送的密码进行比较.(服务器还要检查发送密码的时间差,1分钟以内)
详细见注释:摘自老刘。
0 0
- iOS 使用 md5加密
- IOS-MD5加密方法
- IOS---MD5加密
- IOS的MD5加密
- iOS md5 sa1加密
- IOS MD5加密方法
- MD5加密 IOS
- ios Md5加密
- IOS MD5加密
- ios--md5加密
- [iOS]MD5加密字符串
- iOS MD5加密
- IOS之MD5加密
- ios md5加密
- iOS MD5加密
- ios MD5加密
- IOS MD5加密
- iOS MD5字符串加密
- Hadoop2.0源代码阅读
- php上传中文文件文件名乱码问题
- 浅谈HASH算法与CSDN密码泄漏事件
- 鸡兔同笼 java代码
- 使用fragmenttabhost实现tab菜单布局(去掉分割线及其布局)
- iOS MD5加密
- Simple Transformation的使用
- 我的兴趣爱好
- ruby on rails 项目中用到的mongo的查询方法
- AutoLayout——由切图引发的UITableViewCell自定义高度布局的失败!
- android带进度条的button
- Android笔记使用SharedPreferences进行数据存储
- 微信公众号开发之uwsgi拒绝post请求
- Contest1319 - 期末习题汇总(二) 计算机基础---进制转换相关