国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

解決hash沖突的四種方法 php程序員hash碰撞原理是什么,怎么解決?

php程序員hash碰撞原理是什么,怎么解決?Hash函數(shù)相當(dāng)于將一個原始空間的數(shù)據(jù)集映射到另一個空間,也可以理解為通過Hash函數(shù)將另一個文本編程成密文,稱為Hash encryption例如MD5

php程序員hash碰撞原理是什么,怎么解決?

Hash函數(shù)相當(dāng)于將一個原始空間的數(shù)據(jù)集映射到另一個空間,也可以理解為通過Hash函數(shù)將另一個文本編程成密文,稱為Hash encryption

例如MD5,任何一個原始文本都會被加密成8位或16位密文,8位和16位密文是有限的,可以窮盡,但原始文本的長度是無限的,所以理論上它是無限的這會導(dǎo)致兩個或多個不同的原始MD5加密文本會變成同一個密文沖突就是找出一個或多個加密文本的同一個密文

沖突沒有完全解決,我們只能使沖突概率盡可能小,即映射空間或加密密文邊長密文越長,組合方式越多,沖突概率越低

哈希函數(shù)相當(dāng)于將原始空間中的一個數(shù)據(jù)集映射到另一個空間,也可以理解為通過哈希將另一個文本編程成密文函數(shù),稱為哈希加密。例如,MD5中的任何原始文本都將被加密為8位或16位密文。8位和16位密文是有限的,可以是窮舉的。原文的長度是無限的,所以理論上是無限的。這將導(dǎo)致兩個或更多不同的原文。經(jīng)過MD5加密后,它將成為相同的密文。沖突是指在加密沖突存在且無法完全解決后,發(fā)現(xiàn)一個或多個具有相同密文的原始文本。我們只能盡可能降低沖突概率,即映射空間或加密密文越長,密文組合的時間越長,沖突概率越小

對于哈希函數(shù),強沖突:如果我們隨機找到兩條消息M1和M2,那么加密值H(M1)=H(M2),表示碰撞中沒有碰撞,如果這種碰撞不能實現(xiàn),則稱為碰撞穩(wěn)定。hash函數(shù)的另一個安全問題是弱沖突:如果給定一個消息M1并搜索該消息M2,使得值H(M1)=H(M2)被hash函數(shù)加密,則表示存在沖突。如果不能實現(xiàn)這樣的碰撞,則稱為第二原語穩(wěn)像。

強碰撞:可以抵抗強碰撞的哈希函數(shù)

弱碰撞:只能抵抗弱碰撞的哈希函數(shù)。

php程序員hash碰撞原理是什么,怎么解決?

此實現(xiàn)假定哈希函數(shù)在存儲桶之間正確分配元素,這可以為基本操作(get和put)提供穩(wěn)定的性能。迭代集合視圖所需的時間與HashMap實例的“容量”(bucket數(shù))及其大小(鍵值映射數(shù))成比例。因此,如果迭代性能很重要,不要將初始容量設(shè)置得太高(或負載系數(shù)太低)。

HashMap實例有兩個影響其性能的參數(shù):初始容量和加載因子。容量是哈希表中的存儲桶數(shù),初始容量只是創(chuàng)建哈希表時的容量。負載因子是哈希表在容量自動增加之前的滿度。當(dāng)哈希表中的條目數(shù)超過加載因子和當(dāng)前容量的乘積時,哈希表將被重新哈希(即,重建內(nèi)部數(shù)據(jù)結(jié)構(gòu)),這樣哈希表將具有大約兩倍的bucket數(shù)。