目錄
一、雜湊演算法簡介
二、雜湊演算法的應用
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...