1
unique 2017-12-18 18:59:52 +08:00
好文,get 了
|
2
jadec0der 2017-12-18 19:02:46 +08:00
Hash 碰撞攻击以前真没听说过,有意思
|
3
rim99 2017-12-18 19:19:38 +08:00 via Android
讲的挺好,就适合我这种小白
|
4
holyghost 2017-12-18 19:27:49 +08:00 via iPhone
你们四个是一个组的吧?
|
8
iyangyuan 2017-12-18 19:40:08 +08:00 via iPhone
啊?这叫哈希冲突吧老哥?!
|
10
linuxchild 2017-12-18 19:49:05 +08:00
说真的,你推广博客就推广吧,没必要还互相吹,说难听都算是浪费后来人的时间了。
我读完了内容和链接内容,都有标题党都感觉了。 另外,博文逻辑感觉不清晰,我找了半天怎么解决哈希冲突,现在都不确定你有没有写。 最后,还不如之前数据结构书上讲的明白 |
11
linuxchild 2017-12-18 19:50:19 +08:00
再补充一下,看帖子第一感觉还以为是某种攻击方式
|
12
scriptB0y OP @linuxchild 我不认识前面三个
|
13
jimzhong 2017-12-18 22:21:31 +08:00 1
健壮的 hash 表都有一个随机生成的 seed。
|
14
zhicheng 2017-12-19 02:28:21 +08:00 3
Hash 冲突攻击是利用开源编程语言公开的 hash 算法,提前计算出能够产生相同 hash 的字符串,让语言自带的 dict 类型性能从哈希表 O(1) 降到链表 O(n) 的攻击手段。
比如 HTTP 框架会用字典存储参数,这样我在 URL 里构造数千个能够产生相同 hash 的参数名 ,当你读这个字典的时候就会非常消耗 CPU。 解决办法很简单,编程语言在启动的时候生成一个随机数,以后每次计算 hash 都用这个随机数做 seed,因为别人几乎无法猜到这个随机数,所以也就没办法利用提前计算冲突 hash 进行攻击。 我在 Lemon 里就是这样实现的,以下为参考代码 https://github.com/lemon-lang/lemon/blob/master/src/lemon.c#L283 https://github.com/lemon-lang/lemon/blob/master/src/hash.c#L25 |
15
trulyshelton 2017-12-19 10:27:13 +08:00 via iPhone
讲的没啥错,就是,这不是最基本的 data structure 常识吗?
|
16
scriptB0y OP @trulyshelton 是的
|