zoukankan      html  css  js  c++  java
  • iOS 开发 Message Digest Algorithm 5(MD5加密)

      MD5的全称是Message Digest Algorithm 5(消息摘要算法第五版),是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。在90年代初由MIT Laboratory for Computer Science 和RSA Data Security Inc的Ronald L.Rivest开发,经MD2、MD3和MD4发展而来。Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是“字符串”这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。

         MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。

         MD5加密是不可逆的,只有加密,没有解密

    #warning mark - MD5加密方法

    -(NSString *) md5HexDigest:(NSString *)string

    {

        const char *original_str = [string UTF8String];

        unsigned char result[CC_MD5_DIGEST_LENGTH];

        CC_MD5(original_str, (CC_LONG)strlen(original_str), result);

        NSMutableString *hash = [NSMutableString string];

        for (int i = 0; i < 16; i++)

            [hash appendFormat:@"%02X", result[i]];

        return [hash lowercaseString];

    }

    #warning mark - MD5加密方法

    -(NSString *) md5HexDigest1:(NSString *)string

    {

        const char *original_str = [string UTF8String];

        unsigned char result[CC_MD5_BLOCK_BYTES];

        CC_MD5(original_str, (CC_LONG)strlen(original_str), result);

        NSMutableString *hash = [NSMutableString string];

        for (int i = 0; i < 16; i++)

            [hash appendFormat:@"%02X", result[i]];

        return [hash lowercaseString];

        // bf9017d04f72c1b5ba407971fbf61289

        // bf9017d04f72c1b5ba407971fbf61289

    }

  • 相关阅读:
    常用内建函数
    函数作用域
    异常处理语句
    迭代器---待延申扩展
    流程控制语句
    字典
    集合
    数据类型的可变与不可变
    Openstack keystone组件详解
    云计算openstack介绍(001)
  • 原文地址:https://www.cnblogs.com/IceBlack-Tea-developer/p/5287957.html
Copyright © 2011-2022 走看看