【加密算法】如何藏住Little Burger的小秘密?

众所周不知,小堡鸽自寒假以来,每天沉迷游戏,荒淫无度,但还把自己伪装成爱学习的样子,可谓无耻无能。

每每午夜夜深人静之时,小堡鸽总喜欢从冰箱里打开一杯82年的青柠绿茶,抿一小口,打开尘封已久的电脑准备敲代码。

Ten seconds later…

今天的学习到此为止,现在是,游戏时间!

终于到了查进度的这一天,学长看着Little Burger的Liitle项目陷入了沉思…

为了不让这一天成为现实,Little Burger决定…

把他的项目藏起来!

就像每一个没写完寒假作业的烧年,回到学校面对班主任犀利的眼神,毅然决然回答道”我找不到了“一样。经过Little Burger的Little脑袋的缜密思考,觉得这种方式一定能瞒天过海。

为了帮助Little Burger成功瞒住他的学长,小堡鸽的好朋友Little Ham从口袋里掏出了他刚从百度上搜索出来的MD5算法

“锵锵~”小汉伸出手,手心里躺着热乎乎的MD5算法。

一、关于MD5算法——消息摘要算法

小汉:请看VCR(摊手)

image-20240123232203184

如图,第一种加密算法只使用一种密钥,加密和解密共用同一个,故而是对称的加密算法,第二种算法则使用两种密钥,往往公开公钥而保留私钥,所以这种算法称为非对称加密算法

而今天要学的MD5算法,它就是:消息摘要算法

Little Burger:?

Little Ham:既然要追求刺激,那就贯彻到底咯。

image-20240123234701197

介绍消息摘要算法,就不得不先提到MD5加密的几个特性:

1.长度固定:无论输入多少字节,输出总是16字节

2.不可逆:无法从密文反推到原文(因为无论多大的信息都被压缩到16字节,所以必然会丢失一部分信息)

3.高度离散性:即输出没有任何规律,即便只改变原文的一个字节,输出也会天差地别。

4.抗碰撞性:即想找到两个不同的数据,加密成一样的MD5密文十分困难。

故而可以这样理解消息摘要算法:将一段数据进行提取加密,因为其高度离散性和抗碰撞性,常常称呼这段加密后的密文为“数字指纹”,借由数字指纹,我们可以实现数据签名、数据完整性校验等等功能。

以寻常的密码保护作为例子,在记录密码时,不记录密码本身,而是使用MD5算法加密成密文,若是第二次输入密码,计算后密文一致,则验证通过。又因为其不可逆性质,即便密码的数据库被盗,也无法通过MD5反推出明文是什么。

又或者是文件的完整性校验。可以在文件发出前将其用MD5算法进行加密,在接收时再次加密,观察密文,则可以校验出该文件在发送过程中是否经过篡改或者损坏。

二、MD5算法是如何实现的?

这个部分,我将先用文字描述一遍MD5算法的实现过程,再放上部分关键代码和数据,分隔开用于理解和用于实践的部分。&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值