iOS 开发 Message Digest Algorithm 5(MD5加密)

本文深入解析MD5算法,一种广泛应用于计算机安全领域的散列函数,用于保护消息完整性。介绍了MD5的发展历程,从MD2到MD5的演进,以及其不可逆特性,通过实例展示了如何使用Objective-C实现MD5加密。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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

}

 

转载于:https://www.cnblogs.com/IceBlack-Tea-developer/p/5287957.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值