【算你厉害】简略MD5算法介绍_MD5 到底是不是加密算法?

一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。今天就来聊聊常见的一种算法吧~

话题模板:

(提醒:在发布作品前,请把不需要的内容删掉。)

一:引言

MD5 是程序开发中非常常用的一种算法,很多人都用过。MD5算法最常用的一个场景就是用户注册,密码进行MD5加密,密码无法反向解密可以提高安全性。但 MD5 到底是加密吗?所谓的加密到底是什么意思?

二:MD5算法介绍

MD5 只是一种哈希算法,不算真正的加密算法

三:MD5算法是什么?

那么问题来了,到底啥才是加密?

加密是什么?
  • 加密,指的是对数据进行转换以后,数据变成了另一种格式,并且除了拿到解密方法的人,没人能把数据转换回来。
  • 加密算法的目的,在于别人无法成功查看加密后的数据,并且在需要的时候还可以对数据进行解密来重新查看数据。

因此,加密通常用于网络通信。因为网络上的通信数据,任何人都有可能会拿到,把数据加密后再传送,送达以后由对方解密后再查看,就可以防止网络上的偷窥。例如大家都知道「安全」但很少人知道「为什么安全」的 HTTPS,就是通过加密算法来保障的网络安全性。 

四:哈希算法

哈希算法,即 hash,又叫散列算法,是一类把任意数据转换为定长(或限制长度)数据的算法统称

例如我叫张三,你叫李四,那么「人 -> 人名」的算法就叫属于一种哈希算法

哈希算法通常用于制作数字指纹,数字指纹的意思就是「你看到这个东西就像看到原数据一样」

如:我们在一些网站下载大文件的时候,网站提供给我们验证文件完整性的 MD5 或者 SHA1 码,就是原文件的哈希值

五:MD5和哈希的关系

哈希算法有很多种,MD5 是其中的一种,这就是 MD5。所以,优秀的哈希算法通常需要具有低碰撞概率(即不同数据的哈希值通常也不一样)

不可逆加密

MD5 算法是一种哈希算法,哈希算法的设计目标本身就决定了,它在大多数时候都是不可逆的,即你经过哈希算法得出的数据,无法再经过任何算法还原回去。所以,既然不能将数据还原,也就不能称之为可以解密;既然不能解密,那么哈希的过程自然也就不能称作是「加密」了。

结论

MD5 只是一种哈希算法,不算真正的加密算法

延申

我们平常开发中接触形形色色的加密算法,简单来说分为

对称加密算法:加密算法与解密算法的秘钥key一致。
非对称加密算法:加密算法与解密算法的秘钥不一致。
散列算法:没有秘钥,目前无法反向解密。(暴力破解除外)
常规加密算法:
  • DES加密算法、
  • AES加密算法、
  • RSA加密算法、
  • Base64加密算法、
  • XXXTEA加密算法,等等。

其中MD5和SHA-1都是哈希,散列算法,严谨来说不算加密算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

echo爱学易语言

你的鼓励,我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值