`
lizaochengwen
  • 浏览: 644011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS MD5加密算法

 
阅读更多
一,-(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和RSA加密算法Java完成实现

    MD5和RSA加密算法Java完成实现,及实现RSA需要用的jar包。参见博文 http://blog.csdn.net/yanzi1225627/article/details/26508035

    iOS中MD5加密算法的介绍和使用

    MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码。...这篇文章就给大家介绍了iOS中MD5加密算法,已经iOS中MD5加密算法的使用,有需要的朋友们可以参考借鉴。

    ios-MD5加密的两种形式.zip

    是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成...

    ios-鹏哥哥算法加密.zip

    鹏哥哥加密算法 如果对您有所帮助 请点进下面GitHub链接 送一颗宝贵的星星给我 // GitHub地址 https://github.com/penghero/PGGCrypto.git 超全的加密算法锦集 每个算法都进行了封装 都可以通过类方法直接进行创建...

    iOS swift 写的HMAC_SHA1和MD5加密

    swift写的HMAC_SHA1和MD5加密扩展类,其中HMAC_SHA1扩展方法除了SHA1,还可以使用其它算法比如SHA1,SHA224等

    下载来的iOS swift 写的HMAC_SHA1和MD5加密

    swift写的HMAC_SHA1和MD5加密扩展类,其中HMAC_SHA1扩展方法除了SHA1,还可以使用其它算法比如SHA1,MD5 ,SHA224等

    iOS加密方法

    下载文件为压缩文件,压缩内容有iOS中常用的RSA & AES & DES&MD5&Base64等5中加密算法相关的demo。

    简单讲解iOS应用开发中的MD5加密的相关使用

    2.常见的加密算法 MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES 3.加密算法的选择 一般公司都会有一套自己的加密方案,按照公司接口文档的规定去加密   二、MD5 1.简单说明 MD5:全称是Message ...

    ios常见加密解密方法(RSA、DES 、AES、MD5)

    本篇文章主要介绍了ios常见加密解密方法(RSA、DES 、AES、MD5),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    iOS中常见的几种加密方法总结

    主要给大家介绍了关于iOS中常见的几种加密方法,其中包括 base64加密、POST加密、Token值介绍、MD5加密--(信息-摘要算法) 哈希算法之一、时间戳密码以及指纹识别等方法,文中通过示例代码介绍的非常详细,需要的朋友...

    RAS前端加密,JAVA后端解密。实现加密传送(补充了一个JS)

    实现前端jsencrypt加密,后端用java进行解密,然后用md5进行登录,非对称加密算法实现。包含代码示例代码详解

    苹果企业签名—ios签名的算法形式

    (2)摘要要短,这里最常用的算法就是MD5. 会生成一份非对称加密的公钥和私钥,私钥自己拿着,公钥公布出去。给一份数据算出摘要,给这个摘要用私钥加密,得到一份加密的数据,被称为原始数据,将他和原始数据一块...

    bcpkix-jdk15on-152.jar

    支持密钥128位,192位,256位(常用的是128位 md5, 256位 sha256) 算法/工作模式/填充方式的概念: 算法是:AES 工作模式:ECB/CBC 默认情况下iOS是CBC的,我提供的例子是ECB的的工作模式,所以iOS在设置加密参数的...

    bcprov-ext-jdk15on-1.54.jar

    支持密钥128位,192位,256位(常用的是128位 md5, 256位 sha256) 算法/工作模式/填充方式的概念: 算法是:AES 工作模式:ECB/CBC 默认情况下iOS是CBC的,我提供的例子是ECB的的工作模式,所以iOS在设置加密参数的...

    Hash_for_os.zip

    ios系统镜像校验工具,hash校验,SHA全称Secure Hash Standard,又称安全哈希标准,SHA家族算法有SHA-1、SHA-224、SHA-256、SHA-384和SHA-512(后四者通常并称SHA2),原理和MD4、MD5原理相似,SHA是由美国国家安全...

    CryptoSwift是在Swift中实现的标准安全加密算法的不断增长的集合-Swift开发

    (#PureSwift)目录需求功能贡献安装Swift版本使用作者许可证Changelog需求心情良好功能易于使用方便的字符串和数据扩展支持增量更新(流,...)iOS,macOS,AppleTV,watchOS,Linux支持哈希(摘要)MD5 SHA1 SHA...

    RSA加密/解密

    作者zziking,源码KIZCryptorLib,RSA加密/解密、RSA签名、SHA1、MD5等加密算法,希望大家可以参考一下这个案例。

    AEC 128 ECB模式、CBC模式

    项目开发过程中,经常会使用各种加密手段来保证数据的安全性,常见的有MD5,DES,AES等等。摘取百度百科AES词条的简介:AES即高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称...

Global site tag (gtag.js) - Google Analytics