V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Adia
V2EX  ›  问与答

书上看到关于 hash 相关的知识,有一个小疑问想请教大家

  •  
  •   Adia · 2016-12-10 17:06:54 +08:00 · 1763 次点击
    这是一个创建于 2701 天前的主题,其中的信息可能已经有所发展或是发生改变。

    • 通过哈希机制把消息摘要放在消息后面。那我恶意截获时直接篡改消息并生成新的消息摘要放在后面不就解了?
    14 条回复    2016-12-13 21:54:33 +08:00
    wy315700
        1
    wy315700  
       2016-12-10 17:07:57 +08:00
    hmac
    tomczhen
        2
    tomczhen  
       2016-12-10 17:09:58 +08:00 via iPhone   ❤️ 1
    可以使用带秘钥 hash 或者将签名用非对称加密。
    v9ox
        3
    v9ox  
       2016-12-10 17:11:59 +08:00 via iPhone
    这书太烂了

    我理解应该是摘要部分要用私钥加密 接收的人用公钥对摘要进行验证 确定摘要的发送人没有被替换
    Adia
        4
    Adia  
    OP
       2016-12-10 17:12:51 +08:00
    @wy315700 “ HMAC 是密钥相关的哈希运算消息认证码( Hash-based Message Authentication Code ),HMAC 运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。” 请问是加了个盐的意思是吗?也就是只有拿到相应的 hash 算法才能成功篡改咯?
    Adia
        5
    Adia  
    OP
       2016-12-10 17:14:18 +08:00
    @v9ox 书名是《云计算 概念、技术与架构》,看书皮一副很经典的样子...
    wy315700
        6
    wy315700  
       2016-12-10 17:14:22 +08:00   ❤️ 1
    @Adia 需要得到密钥才可以验证和生成对应的 hmac 摘要,可以避免你说的篡改以后生成一个摘要的情况
    v9ox
        7
    v9ox  
       2016-12-10 17:15:50 +08:00 via iPhone
    @Adia 一看到云计算、大数据 这种书就烦……
    Adia
        8
    Adia  
    OP
       2016-12-10 17:19:38 +08:00
    @v9ox 菜鸟想了解一下概念。请问有什么好的博客或者资料之类推荐吗?(英文不是很好
    helloccav
        9
    helloccav  
       2016-12-10 17:39:03 +08:00
    消息摘要 = f(原始消息, key)
    你没有 key ,你生成的消息摘要就不可能正确
    crab
        10
    crab  
       2016-12-10 19:10:28 +08:00
    你生成新的消息摘要对服务器来说是解不开的。除非你知道服务器是怎么验证的(有密钥,有随机数算出)。但显然你不可能通过现在的消息摘要算出来啊。
    elicec
        11
    elicec  
       2016-12-10 23:10:25 +08:00 via Android
    有个东西叫签名,对哈希的非对称加密就是签名。为什么要对哈希加而不是直接加密内容呢?因为非对称很耗时的。哈希的长度一般很短。那么问题又来了,私钥加密哈希,公钥解密,那万一有人偷偷的换了你的公钥呢,用自己的公钥替代,然后用自己的私钥伪造?
    还有个东西就数字证书。就是对公钥的公证。用权威的公钥和私钥对你的公钥就行认证~
    ryd994
        12
    ryd994  
       2016-12-11 00:53:41 +08:00 via Android   ❤️ 1
    单纯放个 hash 不能叫 signature ,只能叫 checksum
    可防传输错误,不防蓄意攻击(智能攻击者)
    但是做 checksum 的话没必要用 hmac , crc 就够了

    要防蓄意篡改,你需要签名
    签名可以通过预共享的密钥或者不对称算法

    加盐没用,因为盐也是明文,可以被替换
    加盐用在密码储存,避免利用字典对泄露的加密过的密码就行碰撞(破解)


    这书一看就很不经典, hasing ?少了 h 吧
    而且 hash 和 hash 区别多了去了
    快速 hash 用于 clustering 等,讲求的是快
    hmac 用于签名等,将求安全,其次尽量快
    pbkdf 用于密码储存,讲求不可逆同时尽量慢

    我跟你讲哈,要买经典书,特别是网络和加密类的,认准两个人就行: Alice 和 Bob (滑稽
    9hills
        13
    9hills  
       2016-12-11 09:47:08 +08:00 via iPhone
    一看就是国人写的书,简直误人子弟……


    技术书籍,远离国人,方是正道
    Adia
        14
    Adia  
    OP
       2016-12-13 21:54:33 +08:00
    @9hills 英国人写的,国人翻的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1786 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:51 · PVG 08:51 · LAX 17:51 · JFK 20:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.