1樓:匿名使用者
1、rshash
unsigned int rshash(const std::string& str)
return hash;
}2、jshash
unsigned int jshash(const std::string& str)
return hash;
}3、pjwhash
unsigned int pjwhash(const std::string& str)
}return hash;
}4、elfhash
unsigned int elfhash(const std::string& str)
hash &= ~x;
}return hash;
}5、bkdrhash
unsigned int bkdrhash(const std::string& str)
return hash;
}雜湊演算法將任意長度的二進位制值對映為較短的固定長度的二進位制值,這個小的二進位制值稱為雜湊值。雜湊值是一段資料唯一且極其緊湊的數值表示形式。如果雜湊一段明文而且哪怕只更改該段落的一個字母,隨後的雜湊都將產生不同的值。
要找到雜湊為同一個值的兩個不同的輸入,在計算上是不可能的,所以資料的雜湊值可以檢驗資料的完整性。一般用於快速查詢和加密演算法。
2樓:匿名使用者
1.linear hash 線性
2.quadratic hash 每次以1,4,9,16這樣的幅度向下找
3.double hash 用兩個函式一起決定hash的index
3樓:匿名使用者
md5 sha1 murmurhash quickhash。。。。
4樓:匿名使用者
最常見的線性的唄,取餘數對映
5樓:郗抒才蘊涵
常見的hash演算法有md5和sha
但是廣義的hash演算法,是指大範圍到小範圍的對映。如果按照你那個定義的話,那也算啊。算是廣義的hash演算法。
什麼是雜湊演算法,雜湊函式主要有哪些?
6樓:半神_禹
額。。lz是不是看了**繪的終極解密啊?
我也蠻感興趣滴。。嘿嘿,
雜湊函式是一般的線性表,樹中,記錄在結構中的相對位置是隨機的,即和記錄的關鍵字之間不存在確定的關係。
將資料元素的關鍵字k作為自變數,通過一定的函式關係(稱為雜湊函式),計算出的值,即為該元素的儲存地址。表示為:
addr = h(key)
為此在建立一個雜湊表之前需要解決兩個主要問題:
⑴構造一個合適的雜湊函式
均勻性 h(key)的值均勻分佈在雜湊表中;
簡單 以提高地址計算的速度
⑵衝突的處理
衝突:在雜湊表中,不同的關鍵字值對應到同一個儲存位置的現象。即關鍵字k1≠k2,但h(k1)= h(k2)。
均勻的雜湊函式可以減少衝突,但不能避免衝突。發生衝突後,必須解決;也即必須尋找下一個可用地址。 無論雜湊函式設計有多麼精細,都會產生衝突現象,也就是2個關鍵字處理函式的結果對映在了同一位置上,因此,有一些方法可以避免衝突。
1.拉鍊
拉出一個動態連結串列代替靜態順序儲存結構,可以避免雜湊函式的衝突,不過缺點就是連結串列的設計過於麻煩,增加了程式設計複雜度。此法可以完全避免雜湊函式的衝突。
2.多雜湊法
設計二種甚至多種雜湊函式,可以避免衝突,但是衝突機率還是有的,函式設計的越好或越多都可以將機率降到最低(除非人品太差,否則幾乎不可能衝突)。
3.開放地址法
開放地址法有一個公式:hi=(h(key)+di) mod m i=1,2,...,k(k<=m-1)
其中,m為雜湊表的表長。di 是產生衝突的時候的增量序列。如果di值可能為1,2,3,...m-1,稱線性探測再雜湊。
如果di取1,則每次衝突之後,向後移動1個位置.如果di取值可能為1,-1,2,-2,4,-4,9,-9,16,-16,...k*k,-k*k(k<=m/2)
稱二次探測再雜湊。如果di取值可能為偽隨機數列。稱偽隨機探測再雜湊。
4.建域法
假設雜湊函式的值域為[0,m-1],則設向量hashtable[0..m-1]為基本表,另外設立儲存空間向量overtable[0..v]用以儲存發生衝突的記錄。
lz先把自己現階段的函式搞定,會慢慢接觸高等的函式滴,感覺蠻刺激的。。
常用的雜湊函式有哪些
hash演算法的有哪幾種,優缺點,使用場景
7樓:匿名使用者
hash演算法在資訊保安方面bai的應用主
du要體現在以下的3個方zhi面: 1)檔案校驗 我們比dao較熟內悉的校驗演算法有奇偶校容驗和crc校驗,這2種校驗並沒有抗資料篡改的能力,它們一定程度上能檢測並糾正資料傳輸中的通道誤碼,但卻不能防止對資料的惡意破壞。
什麼是雜湊演算法?
8樓:諸葛恕褚女
雜湊函式是一個數學方程式,它可用文字(如電子郵件資訊)來生成稱為資訊摘要的**。著名的雜湊函式如:md4,md5,shs。
用於數字鑑別的雜湊函式必須有特定的屬性,使它在密碼使用方面有足夠的安全性。尤其是,下面的內容一定不能被發現:
用來雜湊出特定值的文字。也就是說,如果你知道資訊摘要,你應該不能解出資訊的內容。
用來雜湊出相同值的兩個不同的資訊。
如果能夠發現用來雜湊出特定值的某個資訊,攻擊者就能夠用假資訊替代經過簽名的真資訊。而有些人也能夠聲稱自己實際上簽名了雜湊出相同值的一個不同的資訊,以此虛假地否認這條資訊。這樣就破壞了數字簽名的無法否認的屬性。
如果能夠發現用來雜湊出相同值的兩個不同的資訊,攻擊者就能夠給一個資訊簽名,這個資訊和另一個資訊都可以雜湊出相同值,但二者的意思卻是完全不同。
朋友老說雜湊演算法,請問到底什麼是雜湊演算法?
9樓:匿名使用者
首先,一般雜湊演算法不是大學裡資料結構課裡那個hash表的演算法。一般雜湊演算法是密碼學的基礎,比較常用的有md5和sha,最重要的兩條性質,就是不可逆和無衝突。
所謂不可逆,就是當你知道x的hash值,無法求出x;
所謂無衝突,就是當你知道x,無法求出一個y, 使x與y的hash值相同。
這兩條性質在數學上都是不成立的。因為一個函式必然可逆,且由於hash函式的值域有限,理論上會有無窮多個不同的原始值,它們的hash值都相同。md5和sha做到的,是求逆和求衝突在計算上不可能,也就是正向計算很容易,而反向計算即使窮盡人類所有的計算資源都做不到。
我覺得密碼學的幾個演算法(hash、對稱加密、公私鑰)是電腦科學領域最偉大的發明之一,它授予了弱小的個人在強權面前資訊的安全(而且是絕對的安全)。舉個例子,只要你一直使用https與國外站點通訊,並注意對方的公鑰沒有被篡改,g**w可以斷開你的連線,但它永遠不可能知道你們的傳輸內容是什麼。
順便說一下,王小云教授曾經成功製造出md5的碰撞,即md5(a) = md5(b)。這樣的碰撞只能隨機生成,並不能根據一個已知的a求出b(即並沒有破壞md5的無衝突特性)。但這已經讓他聲名大噪了。
10樓:清風哎你妹
雜湊演算法將任意長度的二進位制值對映為較短的固定長度的二進位制值,這個小的二進位制值稱為雜湊值。雜湊值是一段資料唯一且極其緊湊的數值表示形式。如果雜湊一段明文而且哪怕只更改該段落的一個字母,隨後的雜湊都將產生不同的值。
要找到雜湊為同一個值的兩個不同的輸入,在計算上是不可能的,所以資料的雜湊值可以檢驗資料的完整性。一般用於快速查詢和加密演算法
希望採納
什麼是雜湊演算法?具體怎麼用啊???有什麼用啊?
11樓:匿名使用者
?看書好了
雜湊函式
一般密碼會用的到,很有趣的一個東西.
以數字簽名為例吧
一篇文章,需要對其進行簽名.
但是要對全部的文章進行簽名的化就比較慢
利用雜湊函式把它變成較少的值
要是二進位制的話就是減少二進位制的位數
這都是雜湊函式可以做到的
再加密就是對一小斷進行加密了
相對來說又比較快
而且相當於對全文都加了密
雜湊函式不是一個函式而是一類
加減乘除都可以
主要是要符合自己的需求
多看課本吧
密碼相關書籍都有介紹
很具體慢慢看
12樓:匿名使用者
自己去看資料結構 和離散數學啊
那上面比我們說的好多了
什麼是雜湊hash演算法
13樓:匿名使用者
雜湊演算法將任抄意長度的二進位制值映bai射為較短的固定長度的二進du制值,這zhi
個小的二進位制值稱為哈dao
希值。雜湊值是一段資料唯一且極其緊湊的數值表示形式。如果雜湊一段明文而且哪怕只更改該段落的一個字母,隨後的雜湊都將產生不同的值。
要找到雜湊為同一個值的兩個不同的輸入,在計算上是不可能的,所以資料的雜湊值可以檢驗資料的完整性。一般用於快速查詢和加密演算法。
雜湊演算法是怎麼實現的,什麼是雜湊演算法?具體怎麼用啊???有什麼用啊?
雜湊演算法將任意長度的二進 制值對映為較短的固定長度的二進位制值,這個小的二進版制值稱為雜湊權值。雜湊值是一段資料唯一且極其緊湊的數值表示形式。如果雜湊一段明文而且哪怕只更改該段落的一個字母,隨後的雜湊都將產生不同的值。要找到雜湊為同一個值的兩個不同的輸入,在計算上是不可能的,所以資料的雜湊值可以檢...
常見的語法手段有哪些什麼是語法手段常見的語法手段有哪些
1 選詞 進入結構的詞首先要在語法的詞類中選擇。如 讀書 之所以是述賓結構,是從 讀 和 書 的詞類確定的。2 詞序 例如 學生愛老師 與 老師愛學生 表示的意義不同。3 虛詞 例如聯合結構中,用 和 或 等連詞 又如偏正結構中,用 的 做連詞。詞序和虛詞是漢語的主要語法手段。4 詞形變化 詞形變化...
常見的養胃的食物有哪些,常見食物哪些是養胃潤肺的?
1 小米 暖胃,安神 2 南瓜 南瓜性溫,味甘。解毒 南瓜內含有維生素和果膠,果膠有很好的吸附性,能粘結和消除體內細菌毒素和其他有害物質,如重金屬中的鉛 汞和放射性元素,起到解毒作用。保護胃粘膜,幫助消化 南瓜所含果膠還可以保護胃腸道粘膜,免受粗糙食品刺激,促進潰瘍面癒合,適宜於胃病患者。南瓜所含成...