请选择 进入手机版 | 继续访问电脑版
发帖
开启辅助访问
 找回密码
 立即注册
取消
搜索
热搜:
活动 交友 discuz
分享到

加密和杂凑有什么不一样?

#技术分享#时间:2018-10-16 阅读:393 回复:0
前言

阅读本文前建议您先浏览一下分不清加密、压缩、编码?看完这篇就够了哦!
您可能或多或少都有看过或听过「MD5 加密」、「MD5 解密」、「SHA-1 加密」、「SHA-1 解密」、「杂凑加密演算法」。但 MD5 和 SHA-1 实际上并不是加密演算法,而是杂凑演算法。那么究竟加密跟杂凑到底有什么不一样,又该如何区分,这篇会跟大家好好聊一聊

杂凑(Hash)

其实杂凑在一些压缩演算法或者排序演算法也都有用到,但这边只就资讯安全相关的部分进行讨论。

特性
  • 杂凑演算法的输出又被称做「杂凑值」(hash value)。
  • 无论原文的内容长短,杂凑值都会是固定的长度,不同杂凑演算法的输出长度不同,即输出长度与杂凑演算法有关,不受原文长度影响
  • 相同的内容作为相同杂凑演算法的输入,得到的输出必定一样。不同的内容作为相同杂凑演算法的输入,得到的相同输出的机率极低。因此,两个原文的内容即便只差一个字,杂凑演算法产生的两个输出内容却会差非常多。
  • 无法将杂凑演算法的输出解回原本的输入,杂凑是单向的


用途
1. 档案校验码(Checksum)
用来快速判断档案是否和原本相同。

举个栗子:论坛档案下载
有在论坛下载过档案的人应该都很常见到一长串 MD5 或 SHA-1 验证码,就是用来让你快速检查你下载的档案里头的内容,是不是跟上传者上传的档案一样。不一样的话可能就是你载错档案、档案有毁损或档案被人加料了。

2. 不需要被还原的资料
举个栗子:避免明文储存使用者密码
避免直接储存使用者的明文密码,除了避免资料库外泄时,攻击者无需进一步运算就可以直接得到明文密码外,一方面也是尊重使用者,因为正常情况下只有使用者知道自己的密码。

常见演算法
  • SHA 系列
  • MD5 系列
  • BLAKE2

结论
就是一串拿来做检查的字串,但根据使用需求可以有不同的用途。

所以,为什么杂凑不是加密?


杂凑和加密很容易被人搞混的原因,主要是因为,杂凑和加密通常是一起使用的,常常被拿在一起讲,所以久而久之就搞混了。
但其实可以透过以下几点来区分:
  • 加密需要密钥,且可以透过解密得到原文。(加密可逆)
  • 杂凑不需密钥,且无法逆向解出原始输入。(杂凑不可逆

举例
  • 一串密文,我们是有办法透过解密,得到原始的明文的,而且如果使用非对称式加密的话,甚至还可以验证传送方是不是本人(是否有被进行中间人攻击)。杂凑演算法在这里也会被使用,通常会被拿来检验传送的讯息是否有被更改过。传送方附上原始讯息经过某个杂凑演算法得出的杂凑值,接收方在解开这个讯息之后,会透过相同的杂凑演算法来验证
  • 但如果是拿到一串杂凑值的话,理论上是无法逆向得到原始的明文的,根本无法拿来做资料的传递。

所以别再说出「MD5 加密」、「MD5 解密」、「SHA-1 加密」、「SHA-1 解密」之类的话啦!

回复
使用道具 举报
快速回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服电话
173-6185-1240
发布 快速回复 返回顶部 返回列表