Home >> Blog >> Hashing 資料擷取與儲存技術

Hashing 資料擷取與儲存技術

什麼是Hashing?

Hashing是轉換任何給定鍵或字符串的過程。這通常由一個較短的、固定長度的值或鍵表示,該值或鍵表示並且更容易找到或使用原始字符串。

Hashing最流行的用途是Hashing表的實現。Hashing表將鍵和值對存儲在可通過其索引訪問的列表中。因為鍵值對是無限的,Hashing函數會將鍵映射到表大小。然後Hashing值成為特定元素的索引。

Hashing函數根據數學Hashing算法生成新值,稱為Hashing值或簡稱為Hashing。為了防止Hashing轉換回原始密鑰,好的Hashing總是使用單向Hashing算法。

Hashing與——但不限於——數據索引和檢索、數字簽名、網絡安全和密碼學相關。

Hashing是用來做什麼的?

數據檢索

Hashing使用函數或算法將對像數據映射到具有代表性的整數值。然後,當在該對像數據映射上定位這些項目時,可以使用Hashing來縮小搜索範圍。

例如,在Hashing表中,開發人員以鍵值對的形式存儲數據——可能是客戶記錄。密鑰有助於識別數據並作為Hashing函數的輸入操作,而Hashing碼或整數則映射到固定大小。

Hashing表支持的函數包括以下內容:

  • 插入(鍵,值)
  • 得到(關鍵)
  • 刪除(鍵)

Hashing

數字簽名

除了實現快速數據檢索之外,Hashing還有助於加密和解密數字簽名用於驗證消息發送者和接收者的在這種情況下,Hashing函數在Hashing值(稱為消息摘要)和簽名以單獨的傳輸方式發送到接收方之前轉換數字簽名。

收到後,相同的Hashing函數從簽名中得出消息摘要,然後將其與傳輸的消息摘要進行比較,以確保兩者相同。在單向Hashing操作中,Hashing函數索引原始值或鍵並允許訪問與檢索到的特定值或鍵相關聯的數據。

Hashing

什麼是數據結構中的Hashing?

多年來,杜威十進制分類在圖書館中運行良好,其基本概念在計算機科學中也同樣適用。SEO軟體工程師可以通過將原始數據資產和輸入字符串壓縮為短的字母數字Hashing鍵來節省文件空間和時間。

當有人在數據地圖上查找項目時,Hashing有助於縮小搜索範圍。在這種情況下,Hashing碼會生成一個索引來存儲值。因此,在這裡,Hashing用於索引和檢索 資料庫中的資訊, 因為它有助於加速該過程;使用其較短的Hashing鍵比其原始值更容易找到一個項目。

什麼是網絡安全中的Hashing?

許多 加密 算法使用Hashing來增強網絡安全。如果沒有解密密鑰,Hashing字符串和輸入對黑客來說毫無意義。

例如,如果黑客入侵資料庫並找到諸如“John Doe,社會安全號碼 273-76-1989”之類的數據,他們可以立即將該資訊用於他們的邪惡活動。然而,像“a87b3”這樣的Hashing值對於威脅參與者來說是沒有用的,除非他們有解密它的密鑰。

因此,Hashing有助於保護存儲在資料庫中的密碼。

什麼是密碼學中的Hashing?

密碼學使用多個Hashing函數來保護數據。一些最流行的加密Hashing包括以下內容:

  • 安全Hashing算法 1 ( SHA-1 )
  • 安全Hashing算法 2 (SHA-2)
  • 安全Hashing算法 3 ( SHA-3 )
  • MD2
  • MD4
  • MD5

像 MD2、MD4 和 MD5 這樣的消息摘要Hashing函數有助於Hashing數字簽名。Hashing後,簽名將轉換為更短的值,稱為消息摘要。

Hashing

安全Hashing算法(SHA) 是用於創建更大(160 位)消息摘要的標準算法。雖然它類似於消息摘要Hashing函數 MD4——並且擅長資料庫存儲和檢索——但這並不是用於加密或錯誤檢查目的的最佳方法。SHA-2 用於創建更大的(224 位)消息摘要。SHA-3 是 SHA-2 的繼任者。

什麼是碰撞?

網絡安全中的Hashing需要使用單向Hashing算法的單向過程。這是阻止威脅參與者將Hashing反向工程回其原始狀態的關鍵步驟。同時,兩個key也可以生成相同的hash。這種現象稱為碰撞。/p>

一個好的Hashing函數永遠不會從兩個不同的輸入中產生相同的Hashing值。因此,具有極低碰撞風險的Hashing函數被認為是可以接受的。

開放尋址和分離鏈接是在發生衝突時處理衝突的兩種方法。開放尋址通過將所有數據存儲在Hashing表本身中來處理衝突,然後在算法創建的下一個位置尋找可用性。

開放尋址方法包括:

  • 雙重Hashing
  • 線性探測
  • 二次探測

相比之下,單獨的鏈接通過使每個Hashing表單元指向具有相同Hashing函數值的記錄的鏈接列表來避免衝突。

為了進一步確保加密輸出的唯一性,網絡安全專業人員還可以將隨機數據添加到Hashing函數中。這種被稱為“加鹽”的方法即使在輸入相同的情況下也能保證唯一的輸出。

加鹽可阻止不良行為者訪問非唯一密碼。這是因為每個Hashing值都是唯一的,即使用戶重複使用他們的密碼也是如此。Salting 增加了另一層安全性來阻止彩虹表攻擊。

在分析或防止文件篡改時,也可以使用Hashing。這是因為每個原始文件都會生成一個Hashing並將其存儲在文件數據中。當接收方接收到文件和Hashing值時,它可以檢查Hashing值以確定文件是否被洩露。如果有人在傳輸過程中操縱了文件,則Hashing值將反映該更改。