无标题无名氏No.59759381 只看PO
2023-10-06(五)09:17:22
ID:pBgksxo 回应
肥哥们,小肥有问题想问( ゚∀。)
小肥下黄油,发布者给了哈希值,我就产生了一个疑问,两个不同文件的哈希值会一样吗?
于是我百度了一下
哈希值计算的原理可以看做集合A→B的映射
我们输入(百度说是任意长度)a∈A,输出哈希值b∈B
我注意到哈希值的计算结果是用6个英文字母和数字表示的32位字符串,所以B中的元素是有限个,是16^32个。
如果A中的元素个数超过了B中的元素,就会出现多对一的映射,也就是存在m,n∈A,k∈B,使得f(m)=f(n)=k。
这个时候是不是就是这俩输入值m,n的哈希值一样了( ゚∀。)
jp
无标题无名氏No.59768539
2023-10-07(六)01:33:39 ID: qMeWoiI
po说的32位字符串应该是md5,输出是128位二进制数,写成十六进制就是32位。
摘要算法有很多种,理论上就算是只有128位的md5碰撞率也是非常低的。其实普通的取模运算也可以当做哈希函数,这个碰撞率就非常高了|∀` )
无标题无名氏No.59897358
2023-10-20(五)08:29:35 ID: hmXtdXe
虽然不是一个东西,但是理论来说会的。比如Java中字符串"Aa"和"BB"的hash code都是2112。