编码、摘要、加密的区别

2017-02-20 10:40:23 +08:00
 RihcardLu

三种方式都是通过某种公开的算法将原始信息进行编码 /加密

  1. 编码:将数据转化成某种固定的格式的编码信息,方便不同系统间的传输,通过解码编码信息可以得到原始信息

  2. 摘要(哈希):验证信息的唯一性,不能通过哈希值还原原始信息

  3. 加密:加密传输信息,保证信息的安全性,通过密钥和密文可以还原原始信息

编码、摘要、加密的区别

5516 次点击
所在节点    程序员
12 条回复
jybox
2017-02-20 10:46:32 +08:00
关于散列的进一步讨论可以看我的这篇文章: https://jysperm.me/2014/02/1476/ (三年前写的,可能有的地方不恰当,但刚刚我又看了一遍,大体没问题)。

其实我觉得「散列」这个意译要比「哈希」好很多,楼主的文章没有提到散列这个称呼。
lhbc
2017-02-20 10:48:30 +08:00
1. base64, zip, 7z, gzip, rar, flac, ape
2. md5, sha, crc
3. aes, pgp
johnj
2017-02-20 10:58:01 +08:00
@jybox 哈 你的网名
crab
2017-02-20 11:00:25 +08:00
摘要(哈希):验证信息的唯一性。应该是完整性吧。不是有 MD5 这类 不一样文件一样的 MD5 。
msg7086
2017-02-20 11:06:13 +08:00
验证信息的正确性才对吧。
gimp
2017-02-20 11:11:37 +08:00
验证信息的唯一性 -> 验证信息的完整性
RihcardLu
2017-02-20 11:13:36 +08:00
@jybox 看了,介绍的更加深入。
实际上,我看到关于密码存储的最佳实践是不建议使用散列算法,即便是加盐或者多次散列。原因我记得是这么说的,好的加密算法就是即便你的源码泄漏,攻击者这不能窃取到密码。
@crab 谢谢,马上更改
RihcardLu
2017-02-20 11:17:58 +08:00
@msg7086 谢谢,我查了下 wiki ,应该是完整性
@gimp 谢谢,已经改了
eirk2004
2017-02-20 11:41:55 +08:00
开个玩笑,以方便面为例:
编码:面饼可以通过桶装、袋装的形式运输,撕开包装(解码)即可得到面饼;
加密:面条被脱水后形成面饼,每个脱水面饼都会有细微的不同,加热水(解密)即可得到真正的面条
摘要:方便面的包装内有一张武将卡(假设不重复)
kongse
2017-02-20 11:46:13 +08:00
设定一个相空间 A 和相空间 B

最高抽象层次上,编码,哈希和加密都是内容从 A 到 B 的一个变换。

第二抽象层次上,
编码是内容从 A 到 B 的一对一变换。(不严格的说)
哈希是内容从 A 到 B 的多对一变换。
加密是内容从 A 到 B 的一对一变换。

第三抽象层次上,
编码和加密的不同在于,编码从 B 到 A 的变换是容易的,或日常应用直接应用 B 空间的内容更容易(比如视频编码,一般不需要变回原空间)。加密从 B 到 A 则越麻烦(对于不知道密钥的人)越好。这种麻烦程度就是加密强度。
psyche
2017-02-20 15:30:18 +08:00
编码有无损编码和有损编码,有损编码(比如很多多媒体编码)不一定能还原出原始信息
kongse
2017-02-20 18:01:25 +08:00
@psyche 所以是不严格的说编码是一对一的,详细说的话,源内容经过有损编码,再反变换到 A 空间后,总还是保留了比较多的信息。用几何语言描述,就是反变换的内容在 A 空间中,距离原内容位置较近。编码过程中的损失就是噪音,信噪比衡量反变换回原空间后与源距离
的大小。信号传输也是一种相空间中的有损变换,抽象的说是一种东西。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341688

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX