常用的hash函數(shù)有哪些 hash函數(shù)強(qiáng)抗碰撞性和弱碰撞性的區(qū)別?
hash函數(shù)強(qiáng)抗碰撞性和弱碰撞性的區(qū)別?對(duì)于哈希函數(shù),強(qiáng)沖突:如果隨機(jī)找到兩條消息M1和M2,使得值H(M1)=H(M2)被哈希函數(shù)加密,則表示存在沖突。如果這種碰撞無法實(shí)現(xiàn),則稱為碰撞穩(wěn)定。hash
hash函數(shù)強(qiáng)抗碰撞性和弱碰撞性的區(qū)別?
對(duì)于哈希函數(shù),強(qiáng)沖突:如果隨機(jī)找到兩條消息M1和M2,使得值H(M1)=H(M2)被哈希函數(shù)加密,則表示存在沖突。如果這種碰撞無法實(shí)現(xiàn),則稱為碰撞穩(wěn)定。hash函數(shù)的另一個(gè)安全問題是弱沖突:如果給定一個(gè)消息M1并搜索該消息M2,使得值H(M1)=H(M2)被hash函數(shù)加密,則表示存在沖突。如果不能實(shí)現(xiàn)這樣的碰撞,則稱為第二原語穩(wěn)像。
強(qiáng)碰撞:可以抵抗強(qiáng)碰撞的哈希函數(shù)
弱碰撞:只能抵抗弱碰撞的哈希函數(shù)。
HASH函數(shù)的強(qiáng)抗碰撞性與弱抗碰撞性的區(qū)別?
對(duì)于哈希函數(shù),強(qiáng)沖突:如果隨機(jī)找到兩條消息M1和M2,使得值H(M1)=H(M2)被哈希函數(shù)加密,則表示存在沖突。如果這種碰撞無法實(shí)現(xiàn),則稱為碰撞穩(wěn)定。hash函數(shù)的另一個(gè)安全問題是弱沖突:如果給定一個(gè)消息M1并搜索該消息M2,使得值H(M1)=H(M2)被hash函數(shù)加密,則表示存在沖突。如果不能實(shí)現(xiàn)這樣的碰撞,則稱為第二原語穩(wěn)像。
強(qiáng)碰撞:可以抵抗強(qiáng)碰撞的哈希函數(shù)
弱碰撞:只能抵抗弱碰撞的哈希函數(shù)。
hash算法的數(shù)學(xué)原理是什么,如何保證盡可能少的碰撞?
基于概率分析
使用哈希函數(shù)時(shí)選擇“正確”的哈希函數(shù)可以大大減少?zèng)_突
例如,bkdrhash可以用于字符串哈希
當(dāng)然,也可以根據(jù)輸入數(shù)據(jù)的特點(diǎn)設(shè)計(jì)哈希算法
這要視情況而定