查看: 20|回复: 0

编码、哈希、加密三者的本质区别:看不懂不等于加密

[复制链接]

1813

主题

5

回帖

5516

积分

超级版主

积分
5516
发表于 4 天前 | 显示全部楼层 |阅读模式

前言

很多人会混淆编码、哈希、加密这三个计算机概念,它们都可以把原始数据转换成另一串看上去 “看不懂” 的字符,但三者设计目标、工作逻辑天差地别。
一个很直观的生活现象:如果你点网站 “忘记密码”,平台直接把你的原始密码通过邮件发送回来,这在安全从业者眼里是高危信号。说明平台要么直接存储明文原始密码,要么存储的是可以轻易还原的内容。一旦数据库泄露,用户密码直接外泄,极易引发撞库攻击。
想要搞懂背后的安全逻辑,就必须分清编码、哈希、加密。区分三者只看两个核心标尺:转换之后的数据能不能还原;还原是否需要密钥。
概念释义明文:原始可读的数据。密文:经过加密之后的数据。密钥:加密解密所依赖的秘密字符串。彩虹表:攻击者预先计算大量密码与哈希值的对照表,用来快速破解普通哈希密码。撞库:黑客拿到泄露账号密码,批量去其他网站尝试登录,利用用户多平台复用密码的习惯窃取账号。柯克霍夫原则:密码算法本身可以完全公开,安全性只依赖密钥的保密性。

一、编码:只做格式转换,不提供任何保密

编码核心特征:可以完整还原,不需要密钥,目标是数据存储、传输兼容,没有保密作用。
计算机底层只识别 0 和 1,文字、符号、图片都需要一套约定规则转成二进制,这套规则就是编码。
  • UTF‑8 / Unicode:把汉字、表情符号映射成二进制数字,让计算机可以存储全世界文字。乱码,本质就是编码和解码使用的规则不匹配,经典 “锟斤拷” 就是典型案例。
  • Base64:把图片、二进制文件转换成字母数字符号,方便在只支持文本的场景传输,比如邮件附件、网页小图标。转换之后体积会增大约 1/3。
高频误区:Base64 输出的字符串看起来乱码、看不懂,但它不是加密。规则完全公开,任何在线工具一瞬间就可以还原原始内容。拿 Base64 处理密码,和直接存明文几乎没有安全区别。
编码就相当于把中文翻译成汉语拼音,字典人人都可以拿到,人人都能翻译回去,不存在秘密。
二、哈希(散列):数据的数字指纹,单向不可逆

哈希核心特征:无法逆向还原原始数据,不需要密钥,用途是校验比对,而不是保密存储原始内容。
哈希算法接收任意长短的输入,输出一段长度固定的字符串,称为哈希摘要,可以理解成数据的数字指纹。以 SHA‑256 为例,不管输入是几个字还是几 GB 电影,输出固定为 256 位,64 个十六进制字符。
合格哈希算法三大特性:
  • 确定性:相同输入,永远得到一模一样的哈希结果。
  • 雪崩效应:输入仅仅改动一个字符,输出摘要会完全改变,看不出任何关联。
  • 单向不可逆:只能由原文算出指纹,不能靠指纹反推出原文,计算过程已经丢弃绝大部分原始信息。
两大典型使用场景

  • 网站密码存储规范网站不会保存你的原始密码,只保存密码的哈希值。用户登录时,拿你输入的密码现场计算哈希,和数据库里面的摘要比对,一致就允许登录。
这也就是正规网站只支持重置密码,而无法把旧密码直接发给你的根本原因 —— 系统本身也不知道你的原始密码。
单纯哈希也有漏洞:攻击者可以提前算好大量常用密码的哈希,制作彩虹表快速查表破解。解决手段是加盐(Salt):给每一位用户分配独立随机字符串,拼接到密码之后再计算哈希。即便两个人密码相同,加盐之后哈希结果完全不一样,预先生成的彩虹表直接失效InfoQ。
历史教训:MD5 曾经广泛使用,2004 年王小云教授团队公布 MD5 碰撞攻击,可以制造两段不同内容输出相同 MD5 摘要,MD5 从此退出安全密码存储场景。现代密码存储优先选用 bcrypt、Argon2,算法会刻意放慢运算速度,大幅提高暴力破解成本国家密码管...。
  • 文件完整性校验软件官网公布安装包 SHA‑256 哈希值。你下载文件之后本地计算摘要,如果和官方一致,说明文件下载过程没有损坏、没有被篡改。
哈希好比指纹:可以拿指纹核对人是不是本人,但仅凭一枚指纹,无法复原这个人完整样貌。
三、加密:唯一真正用来保密的技术,依赖密钥

加密核心特征:可以还原原始明文,但必须持有正确密钥;设计目标就是保护数据机密性。
加密把明文转为密文;只有拿到密钥,才可以解密恢复原文。遵循柯克霍夫原则:加密算法可以完全公开,安全只取决于密钥是否保密。
分为对称加密、非对称加密两大类:
  • 对称加密(代表 AES)加密和解密使用同一把密钥。如同家门锁,同一把钥匙开门锁门。优点运算速度快,适合大批量数据加密;难题在于如何安全把密钥给到通信对方,密钥传输一旦被截获,全部数据就泄露。
  • 非对称加密(代表 RSA)拥有一对密钥:公钥可以对外公开,私钥自己妥善保管。公钥加密的数据,只有对应的私钥才能够解开。通俗比喻:公钥是一把开放的挂锁,可以随便发给所有人;别人拿到锁把箱子锁好寄给你,但是打开箱子的钥匙(私钥)只在你手上。
缺点是非对称加密计算开销很大,不适合加密超大体积数据。
HTTPS 的工作原理

浏览器地址栏那一把小锁,就是两者的组合方案:先用非对称加密安全协商生成一份临时会话密钥;后续网页传输全部用速度更快的对称加密完成。非对称负责安全交接钥匙,对称负责高效传输业务数据。
四、三者简明对比表

类型能否还原是否需要密钥核心目的典型例子
编码✅完全可还原❌不需要格式转换、传输兼容UTF‑8、Base64
哈希❌不可逆向还原❌不需要密钥(加盐为附加随机串)身份、完整性校验SHA‑256、bcrypt、Argon2
加密✅持有密钥即可还原✅必须密钥数据保密AES(对称)、RSA(非对称)
一句话总结:编码是翻译;哈希是比对指纹;加密是上锁保管秘密。
五、现实生活带来的启发

  • 如果网站忘记密码功能,直接把你的原始密码邮件发给你,属于不安全信号,说明没有正确使用哈希存储密码。一旦数据库泄露,你的密码直接暴露,建议尽快修改密码,该平台尽量不要复用重要密码。
  • Base64、各类乱码字符串不等于加密,不要把编码当成安全手段。
  • 文件下载,核对官方哈希摘要,用来确认文件有没有被篡改。
  • 密码存储:不要直接存明文,不要简单 MD5;优先使用加盐、带计算开销的专门密码哈希算法 bcrypt / Argon2。
六、常见认知误区澄清

  • 误区:输出字符看不懂,就是加密
真相:Base64 编码输出也很乱,但任何人都可以解码;看不懂只是格式转换,不等于安全加密。
  • 误区:哈希可以解密找回原始密码
真相:哈希单向不可逆,只能再次输入猜测密码计算哈希做比对,不能反向还原原文。
  • 误区:加盐就是加密密码
真相:加盐是哈希算法的辅助手段,依然属于哈希,不是加密;盐值本身可以明文存储,不需要保密。
  • 误区:HTTPS 全程只用 RSA 非对称加密传输网页内容
真相:RSA 只用来协商会话密钥,实际网页数据用 AES 对称加密传输。
结语

编码、哈希、加密都能改变原始数据外观,但底层目标完全不同。编码解决 “数据怎么顺利传输存储”;哈希解决 “数据是否一致、身份是否匹配”;加密解决 “数据谁有权限查看”。
看懂三者的区别,就可以分辨很多网络安全现象。下次遇到网站直接返回原始密码、把 Base64 吹嘘成加密的场景,就能一眼识别背后的安全风险。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|天翼网

相关侵权、举报、投诉及建议等,请发 E-mail:2026@typc.net

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|晋ICP备2026008270号-1|晋公网安备14010602111293号

QQ客服返回顶部