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

}

 

posted @ 2016-03-17 16:36  我不是冰红茶  阅读(342)  评论(0编辑  收藏  举报