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

2^256=? 哈希 hash(256)算法,为什么能确定世界上任何不同数据 hash 值是唯一的?

  •  
  •   yylbfyl · 2018-01-31 15:13:31 +08:00 · 7944 次点击
    这是一个创建于 2496 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.1579208923731619542357098500869 ×10 的 77 次方就能代表目前世界上所有数据的可能性了吗? 有没有通过 hash 值反推算出原数据的?这样的话,岂不是可以节省很多硬盘存储空间?

    42 条回复    2018-02-01 22:13:04 +08:00
    zjuturtle
        1
    zjuturtle  
       2018-01-31 15:19:36 +08:00   ❤️ 1
    小伙子你还是得学习一个啊
    suikator
        2
    suikator  
       2018-01-31 15:22:12 +08:00 via Android
    先问是不是 再问为什么
    ray8888
        3
    ray8888  
       2018-01-31 15:25:24 +08:00
    是可能,但是概率很小很小
    gclove
        4
    gclove  
       2018-01-31 15:34:02 +08:00   ❤️ 2
    世界需要你这种脑洞大的人。

    由 hash 值反推算出原数据, 这项艰巨的任务就交给你了。

    只要有了这项算法, 人类征服全宇宙, 时空穿梭 将不再是梦想
    jieee
        5
    jieee  
       2018-01-31 15:35:43 +08:00
    会有 hash 冲突
    ytterbium
        6
    ytterbium  
       2018-01-31 15:36:22 +08:00 via Android
    可是 hash 不是数据压缩方法
    tscat
        7
    tscat  
       2018-01-31 15:36:45 +08:00
    你去查一下宇宙中有多少原子。。。
    WuwuGin
        8
    WuwuGin  
       2018-01-31 15:37:44 +08:00 via Android
    hash 一串字符,那么要多少个超过多长的字符才能用完楼主所说的这么多个?所谓唯一性就是这个意思,密码有正常人会超过 100 位?其余的什么彩虹表之类的东西建议你还是要学习一个。
    tscat
        9
    tscat  
       2018-01-31 15:38:00 +08:00   ❤️ 3
    然后节省硬盘空间。。
    香农哭晕在厕所
    Technetiumer
        10
    Technetiumer  
       2018-01-31 15:38:59 +08:00
    多個數據可能會有同一個 hash
    推算出原數據是可能的,但是概率很低,非常費計算資源
    ghiei9101
        11
    ghiei9101  
       2018-01-31 15:40:07 +08:00
    hash 是摘要算法 理论上是会碰撞的,只是几率比较小。
    evagreenworking
        12
    evagreenworking  
       2018-01-31 15:47:10 +08:00   ❤️ 1
    命运石之门 3.24TB ---> 32Byte 但人家都没有脑洞过用 hash
    0ZXYDDu796nVCFxq
        13
    0ZXYDDu796nVCFxq  
       2018-01-31 16:00:51 +08:00   ❤️ 1
    苍老师全集:3da44bd0b9bc25c110bcf41b7d8f14541327140d41352a701c80d2a1df79486c

    嗯,以后可以用这串 SHA256 hash 值反推出视频
    jadec0der
        14
    jadec0der  
       2018-01-31 16:05:45 +08:00
    hash 是不可逆的
    hash 不是唯一的,有碰撞的可能,例如: https://www.mscs.dal.ca/~selinger/md5collision/
    zhujinliang
        15
    zhujinliang  
       2018-01-31 16:07:56 +08:00
    如果要存下 2^256 个哈希结果,需要约 10 的 56 次方 ZB
    2016 年 Q3 希捷硬盘出货量 3890 万块,假设 1 块硬盘 10TB,1 年大约是 1.56ZB
    可以产生的所有的哈希值,远大于与人类的存储能力,可以认为代表了所有的可能性(前提算法足够优秀)

    到有一天相差不大了,再造个 512 位的哈希就可以再用一阵了
    gclove
        16
    gclove  
       2018-01-31 16:08:42 +08:00
    我觉得要是有了 能存储世界上所有记录的这种技术,即 可以反推出任意 SHA256 的多种解的算法。

    假设整个银河系的质量都由 氢原子构成
    那么,整个银河系有 2.5 * 10 ^ 65 个氢原子。

    也就是说,你这个数量级大到, 完全可以存储下 ( 4600 亿个银河系) 的全部原子数量信息。

    什么 时光倒流,器官再造,长生不老,断臂再生,变种人,超能力,吃书学习,隔空传物。 说是相当落后的技术,一点都不为过。

    因为我们可以把整个太阳系的信息都记录起来, 在计算机里虚拟好几个太阳系运行,使人的生命无限延长。 还能随意切指定时间的多个副本。
    并且可以改善人类的性能, 比如 脑力, 运动能力(肌肉永不疲惫,消耗乳酸 up up up),耐久能力(连续奔跑几天几夜),体型, 视力(4 原色), 嗅觉,听力(听的见超声波和次声波)。 耐寒,耐热,耐毒气。
    brightguo
        17
    brightguo  
       2018-01-31 16:13:07 +08:00
    10 的 77 次方需要都少磁盘空间呢?
    1TB=8x10^9,约等于 10 的 10 次方
    那么 10 的 77 次方大概是 10 的 67 次方个 TB,那得多少个 TB 呢,我是数不过来呢~~
    grimpil
        18
    grimpil  
       2018-01-31 16:23:33 +08:00 via Android
    通过某个人呼出的气体里的某一个氧原子,反推出这个人是谁,反推出这个人的全部 dna,也不是完全没可能,对吧
    pq
        19
    pq  
       2018-01-31 16:33:18 +08:00   ❤️ 2
    如果可以由 hash 反推出原内容,那就堪比“宇宙大爆炸”学说了。。。。
    neighbads
        20
    neighbads  
       2018-01-31 16:48:26 +08:00
    sha1 google 不是前段时间就碰撞出来了。。。。

    https://shattered.it/

    只是对应的 hash 值一样,反推原文是不可能的。
    honeycomb
        21
    honeycomb  
       2018-01-31 17:15:22 +08:00   ❤️ 1
    SHA256 从未保证过
    “世界上任何不同数据经过 sha256 运算后,结果都是唯一的”
    abusizhishen
        22
    abusizhishen  
       2018-01-31 17:21:59 +08:00 via Android
    哈希结果不是唯一的,有冲突
    imdong
        23
    imdong  
       2018-01-31 17:33:01 +08:00
    你从 1 数到 2^256+1,产生的所有数字的 hash 必然有两个是相同的。
    Building
        24
    Building  
       2018-01-31 17:34:12 +08:00 via iPhone
    @gclove 好几个老外跟我说他们写程序就是喜欢当造物主。you can be in control of your own world.
    Microi
        25
    Microi  
       2018-01-31 19:06:07 +08:00 via iPhone
    没人说是唯一的啊。
    Jackiepie
        26
    Jackiepie  
       2018-01-31 20:02:49 +08:00
    不是唯一的,只是以现有的计算力,全世界加起来都要算到地球毁灭,所以暂时认为无法找到相同的值而已。
    limhiaoing
        27
    limhiaoing  
       2018-01-31 20:13:07 +08:00 via iPhone
    hash 不是压缩算法,另外也不存在任何一种压缩算法能够压缩随机生成的无规律的数据。
    h3lica
        28
    h3lica  
       2018-01-31 20:21:52 +08:00 via iPhone
    信息论还需要再学习一个。
    lightening
        29
    lightening  
       2018-01-31 20:22:21 +08:00
    哈希值当然不是唯一的,一个哈希值对应无限多个可能的原始数据。
    Bryan0Z
        30
    Bryan0Z  
       2018-01-31 22:37:24 +08:00 via Android
    @gstqc 骗子,根本推不出来视频
    imn1
        31
    imn1  
       2018-01-31 23:03:03 +08:00
    你们这些人啊,把 LZ 都吓跑了
    laxenade
        32
    laxenade  
       2018-02-01 00:20:21 +08:00 via Android
    建议楼主学一下加密学
    msg7086
        33
    msg7086  
       2018-02-01 00:27:55 +08:00
    还有信息论
    Cu635
        34
    Cu635  
       2018-02-01 00:39:49 +08:00
    哈希在理论上并不唯一,有哈希碰撞,只不过在实践中,已知一段哈希找出这个哈希的原始数据,和已知一段原始数据找出相同哈希的另一段数据都不好找。
    md5 因为找到了有意义的算法来解决已知数据找到相同哈希的另一段数据这个问题,所以说这标志着 md5 被攻破了已经无法在提供安全性了。紧接着就是 sha-1 被攻破。
    而 sha2 系列的哈希在定义和实际应用的时候会先检验一下原始数据的长度,原始数据长度要求小于等于( 2^64-1 )或者( 2^128-1 )比特,这样保证原始数据和算出来的哈希值一一对应。
    WinG
        35
    WinG  
       2018-02-01 00:40:20 +08:00
    骚年,直接去破解比特币吧。
    GooMS
        36
    GooMS  
       2018-02-01 00:55:58 +08:00 via Android
    @gclove 是時候做一個遊戲了
    mozutaba
        37
    mozutaba  
       2018-02-01 01:10:47 +08:00
    打赌你看不懂刘慈欣的《诗云》
    VYSE
        38
    VYSE  
       2018-02-01 01:22:38 +08:00
    HASH 读懂字面英语就明白了,想象下你有一个披萨,一块块连续的,然后你把它剁的碎散的七零八落,HASH 解决了碎后很难找回它原来在哪,并且原来连续的要散的很开的实际问题.
    SHA1->SHA256 只是你剁的更碎而已.
    bzq2810
        39
    bzq2810  
       2018-02-01 08:21:39 +08:00 via iPhone
    心疼楼主
    YingJie
        40
    YingJie  
       2018-02-01 08:50:57 +08:00 via Android
    其实楼主只是表示好奇和疑问,还是别喷的好~
    killerv
        41
    killerv  
       2018-02-01 11:19:49 +08:00
    不唯一,有碰撞的可能,但是无法反推。
    chuckzhou
        42
    chuckzhou  
       2018-02-01 22:13:04 +08:00
    小学就应该学过鸽笼原理。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:42 · PVG 20:42 · LAX 04:42 · JFK 07:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.