雜湊演算法知多少

2021-10-01 19:42:13 字數 1257 閱讀 3301

目錄

一、雜湊演算法簡介

二、雜湊演算法的應用

1、安全加密

2、唯一標識

3、資料校驗

4、雜湊函式

5、負載均衡

6、資料分片

7、分布式儲存

三、一致性雜湊演算法

四、說明

簡單來說,就是將任意長度的二進位制值串對映為固定長度的二進位制值串,這個對映的規則就是雜湊演算法,而通過原始資料對映之後得到的二進位制值串就是雜湊值

雜湊演算法的特點:

常見的安全加密演算法有:

加密方式

常見演算法

優點缺點

雜湊演算法

md5、sha

加解密快速,使用簡單;

無法做到零衝突,即不同的資料雜湊值可能是相同的。比如md5(128位)最多能表示2^128個資料

對稱加密

des、3des、aes、tdea、rc5、blowfish、idea、...

加解密快速,使用簡單;

常用於對大量資料加密

密碼/金鑰需要在網路上傳輸,不安全;秘鑰管理困難;安全等級依賴秘鑰長度

非對稱加密

rsa、ecc、...

只有公鑰在網路上傳輸,私鑰留在本地,相對安全

加解密比較慢,使用複雜;有被劫持風險

混合模式(對稱和非對稱)

使用對稱加密模式,但是對加密的密碼使用非對稱加密方式傳輸

雜湊演算法可以對大資料做資訊摘要,通過乙個較短的二進位制編碼來表示很大的資料。

用於校驗資料的完整性和正確性。

當有海量的資料需要儲存時,為了提高讀寫的速度、寫入能力,一般採用分布式的方法來儲存資料,比如分布式快取。即將海量的資料分布快取到多台機器上面。

比如有1000w張需要快取,假如要使用a、b、c 這3臺伺服器來快取,而且的名稱是唯一的,那麼就可以就可以對【的名稱】計算雜湊值,然後對伺服器數量取模;那麼

hash(名稱) % 3 = 0 的將會被儲存到a伺服器上

hash(名稱) % 3 = 1 的將會被儲存到b伺服器上

hash(名稱) % 3 = 2 的將會被儲存到c伺服器上

但是如果當數量變化,伺服器數量發生變化時,幾乎所有的的快取位置都會發生變化,上面得方法就不太合適了。這是就需要採用一致性雜湊演算法來解決這個問題了。

這位大佬講得非常的通俗易懂,膜拜膜拜

閘道器知多少

閘道器 gateway 顧名思義,就是乙個網路到另乙個網路的關口。維基百科對閘道器的定義為 在計算機網路中,閘道器 gateway 是 其他伺服器通訊資料的伺服器,接收從客戶端傳送來的請求時,它就像自己擁有資源的源伺服器一樣對請求進行處理。但是,很多時候,我們會將路由器和閘道器認為是同乙個概念。其實...

原型知多少

除了undefind,number,string,boolean是簡單的值型別,其他的null,object,function都是物件 函式有prototype屬性,它是物件,是函式屬性和方法的集合 每個物件都有乙個 proto 屬性 隱式原型 它指向建立這個物件的函式的原型 函式也是一種物件 ob...

遍歷知多少

語法 for var arr 1,2,3 for var i 0 i arr.length i for.of.for var i of arr for.in.for var i in arr foreach arr.foreach item,index,arr map arr.map value,i...