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

2018-01-31 15:13:31 +08:00
 yylbfyl

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

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

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

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

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

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

© 2021 V2EX