注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

眼睛想旅行

技术就是我的生命与信仰!

 
 
 

日志

 
 
关于我

精通C,C++,python,Erlang。并熟悉各种其他编程语言,用cocos2dx游戏引擎作过几个项目。会MySQL增删改查,了解OpenGL渲染原理。懂单片机,能设计数字电路系统,会画电路图和设计电路板。喜欢了解最新前沿技术,并持续关注和学习新技术。

网易考拉推荐

iOS下使用md5码(转)  

2014-07-31 13:39:46|  分类: ios学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
因为密码不能明文传送,一般都会使用md5码来给服务器发送密码,如果是动态密码,客户端与服务器端会效对时间,然后客户端与服务器端使用相同的与时间相关的随机数种子和一个固定的编码,再加一些设备信息,进行md5计算或者其他hash计算方法就可以得到一个动态的数据加密密码。所有客户端与服务器端的数据都通过这个动态密码来加密。这样可以使用客户端与服务器端之间的数据就会很安全。
一般的密码都有公钥和私钥之分,这是利用了素数只能被自已和1整除的性质。所以,一般情况下可以使用两个大素数的乘积来作为密码种子,当我们设置密码时,会有套固定的算法来为我们的密码生成一个公钥和一个私钥。私钥就是这两个大素数的乘积。大素数分解因式是一个非常耗时的工作,现在又没有什么更好的办法来对大素数分解因式,所能使用的方法只能是一个一个数试。根据目前所知道的情况,素数的数量是无限的,可以无限大。

#import <CommonCrypto/CommonDigest.h>


//md5 32位 加密 (大写)
+ (NSString *)md5:(NSString *)str {
    const char *cStr = [str UTF8String];
    unsigned char result[32];
    CC_MD5( cStr, strlen(cStr), result );
    return [NSString stringWithFormat:
            @"xxxxxxxxxxxxxxxx",
            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],
            result[16], result[17],result[18], result[19],
            result[20], result[21],result[22], result[23],
            result[24], result[25],result[26], result[27],
            result[28], result[29],result[30], result[31]];
}
//md5 16位加密 (大写)
-(NSString *)md5:(NSString *)str {
    constchar *cStr = [str UTF8String];
    unsignedchar result[16];
    CC_MD5( cStr, strlen(cStr), result );
    return [NSStringstringWithFormat:
            @"%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]
            ]; 
}

NSString字符串的大小写切换使用下边的方法,所以得到的md5不论是大写还是小写问题都不大。
1)lowercaseString:将改变成小写的字符串
2)uppercaseString:字符串将改为大写



  评论这张
 
阅读(449)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017