V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
RihcardLu
V2EX  ›  程序员

编码、摘要、加密的区别

  •  
  •   RihcardLu · 2017-02-20 10:40:23 +08:00 · 5685 次点击
    这是一个创建于 2861 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    编码、摘要、加密的区别

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

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

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

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

    第三抽象层次上,
    编码和加密的不同在于,编码从 B 到 A 的变换是容易的,或日常应用直接应用 B 空间的内容更容易(比如视频编码,一般不需要变回原空间)。加密从 B 到 A 则越麻烦(对于不知道密钥的人)越好。这种麻烦程度就是加密强度。
    psyche
        11
    psyche  
       2017-02-20 15:30:18 +08:00   ❤️ 2
    编码有无损编码和有损编码,有损编码(比如很多多媒体编码)不一定能还原出原始信息
    kongse
        12
    kongse  
       2017-02-20 18:01:25 +08:00
    @psyche 所以是不严格的说编码是一对一的,详细说的话,源内容经过有损编码,再反变换到 A 空间后,总还是保留了比较多的信息。用几何语言描述,就是反变换的内容在 A 空间中,距离原内容位置较近。编码过程中的损失就是噪音,信噪比衡量反变换回原空间后与源距离
    的大小。信号传输也是一种相空间中的有损变换,抽象的说是一种东西。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2583 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:36 · PVG 19:36 · LAX 03:36 · JFK 06:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.