很多验证都是根据 hash 判断是否被修改过,有没有一种方法让修改过的文件的哈希值和修改前的一样。绕过验证
![]() |
2
DGideas 133 天前
这些资料只要在 Google 上一搜就都有了
|
![]() |
3
newmlp 133 天前
当然可以,md5 最简单几秒搞定
|
4
julyclyde 133 天前
有可能
但是好像还没统一的“方法” |
![]() |
5
maskerTUI 133 天前
md5 可以进行哈希碰撞,其他比较难
|
6
lmshl 133 天前
《 How to Break MD5 and Other Hash Functions 》-- Xiaoyun Wang and Hongbo Yu @ Shandong University, Jinan 250100, China,
理论是存在,实践上需要耗费大量计算资源 |
7
thinkershare 133 天前
我们用的 SHA-3, 目前 SHA-2,SHA-3 的篡改应该还没有. 最差也会上 SHA-1, md5 的确已经不安全了.
|
8
acmore 133 天前
理论上可行,但是要是能凑出来的话给你带来的好处远比破坏文件一致性的坏处大得多的多
|
![]() |
9
villivateur 133 天前
MD5 很简单,sha1 记得之前看过一个文章说四张显卡算几个小时就行,sha256 目前还没有相对短时间能碰撞的算力
|
![]() |
10
litguy 133 天前
SHA256 暂时还是安全的,我们存储里面作数据重删用这个判断重复数据
如果这个有冲突,那整个产品就不能用了 |
![]() |
11
loryyang 133 天前
这属于密码学范畴了,部分国家估计在深入研究,如果被突破了,那么很多加密方式会有问题
|
12
leefor2020 133 天前
感觉有意图的篡改原始数据的特定部分之后还能做出一样的 HASH ,难度要比单纯的找出两组不同数据有同样的 HASH ,难度要大很多了
|
13
raw0xff 133 天前
弱弱的问,多 hash 个 100 次,会不会增加 100 倍的难度?
|
18
leoleoleo 133 天前
哈希函数的一个特点就是抗碰撞性,目前已经发表的论文来看 md5 和 SHA1 安全性存在问题,其他通用 hash 算法应该还没有相关的论文说有安全性问题,如果能找到其他通用 hash 算法的安全性问题,可以发密码学或者计算机类的国际顶级会议或者期刊了。
|
![]() |
20
lysS 133 天前
无限域映射到有限域,肯定会有冲突啊; md5 不安全在于可以人为构造相同 hash 的值。要避免冲突错误就每个字节逐个比较
|
21
sparky 133 天前
是不是和挖矿一个道理
|
22
yeqizhang 133 天前 via Android
能构造出 hash 一样的文件,但几乎不能构造出相同作用的文件,如果是程序,那也跑不起来,是文档也打开,没啥用
|
![]() |
23
zeni123 133 天前
假如有一个方法可以 找到 sha256 的哈希碰撞 例如伪造一个 花费 10000RMB 和 十天内吧,那么现在 web 安全应该会崩溃了。 数字签名就是先 hash 再密钥加密。 可以任意构造 hash 的话你可以伪造数字签名。 例如你可以构造一个对密钥 使其的 hash 值和 google 的公钥一样,然后用这个进行第三人攻击。
|
![]() |
25
zeni123 133 天前
@yeqizhang 可以跑起来的, 例如有一个 java 二进制的程序, 你只需要构造一个 最长 16 的字符串的 nonce 加到 bytecdoe 里面. java 字符是 2 个字节,16 个字符串是 256 位可以穷举 sha256 的所有值了。
文档同理,会计有一个文档记录着, A 公司 欠 B 公司 10000 元。 你想把它改成 B 公司 欠 A 公司 这样 Hash 值就变了。 你需要构造一个 nonce 。使得他们的 hash 值一样 可以改成 “B 公司 欠 A 公司 10000 元。<一个看不见的 2^256 可能的字符>” 或者 “B 公司 欠 A 公司 12312323242312334512313 元。” (最多 2^256 元) 然而这只是暴力法。 |
26
ShinichiYao 133 天前 via Android
检测一下文件大小,算两个不同的 Hash 就行了,大小和两种 hash 都对上难度高多了
|
![]() |
27
araaaa 132 天前
这不是和挖矿一样
|