
【計】 hash function; hashing function
散列函數(Hash Function),在計算機科學和密碼學中是一種将任意長度的輸入數據(稱為“消息”)映射為固定長度輸出數據(稱為“散列值”、“哈希值”或“摘要”)的算法。其核心目标是高效地将數據壓縮為獨特且可驗證的表示形式。
功能 | 應用實例 |
---|---|
數據完整性驗證 | 文件下載校驗(如MD5/SHA校驗碼) |
密碼存儲保護 | 系統用戶密碼加密存儲(加鹽哈希) |
數據唯一标識 | 數據庫主鍵生成(如内容尋址存儲) |
快速數據檢索 | 哈希表(Hash Table)數據結構 |
區塊鍊技術基礎 | 比特币工作量證明(PoW)機制 |
國家标準與技術研究院(NIST)
定義散列函數為“将比特串映射為固定長度比特串的函數,滿足密碼學安全性要求”(NIST FIPS 180-4标準)
來源:NIST Computer Security Resource Center
中國科學院《計算機科學技術名詞》
明确“散列函數”為中文規範術語,強調其“将任意長消息壓縮到固定長摘要”的特性
來源:全國科學技術名詞審定委員會
密碼學經典著作
Bruce Schneier在《應用密碼學》中指出:“密碼散列函數必須能抵抗原像攻擊和碰撞攻擊”
來源:Schneier, B. (1996). Applied Cryptography.
注:密碼學領域推薦使用SHA-256或更高強度算法,避免使用已破譯的MD5/SHA-1。實際應用中需結合鹽值(salt)和疊代哈希(如PBKDF2)提升安全性。
: NIST. Secure Hash Standard (SHS). FIPS PUB 180-4
: 全國科學技術名詞審定委員會. 《計算機科學技術名詞》第三版
: Schneier, B. Applied Cryptography: Protocols, Algorithms and Source Code in C
散列函數(Hash Function)是一種将任意長度的輸入數據(如文本、文件)轉換為固定長度輸出值的數學函數。其核心特性是單向性和确定性,廣泛應用于數據校驗、密碼學、數據結構等領域。以下是詳細解釋:
确定性
同一輸入始終生成相同的哈希值。例如,輸入"hello"通過SHA-1算法生成的哈希值永遠是"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"()。
單向性
無法從哈希值反推原始輸入數據。即使知道算法規則,逆向計算在計算上不可行。
抗碰撞性
極難找到兩個不同的輸入生成相同的哈希值。例如,MD5因碰撞漏洞被淘汰(),而SHA-256仍被廣泛使用。
高效性
無論輸入大小,哈希計算均需快速完成,適用于實時數據處理。
數據完整性驗證
通過對比文件哈希值,驗證傳輸或存儲過程中是否被篡改(如軟件下載時的校驗碼)。
密碼存儲
系統存儲用戶密碼的哈希值而非明文,即使數據庫洩露,攻擊者也無法直接獲取密碼(需結合“加鹽”技術增強安全性)。
區塊鍊技術
比特币使用SHA-256生成區塊哈希,确保鍊上數據不可篡改()。
哈希表數據結構
通過哈希值快速定位數據,實現O(1)時間複雜度的查找操作。
算法 | 輸出長度 | 安全性 | 典型用途 |
---|---|---|---|
MD5 | 128位 | 已不安全 | 舊版文件校驗 |
SHA-1 | 160位 | 已發現碰撞漏洞 | 逐漸被淘汰 |
SHA-256 | 256位 | 目前安全 | 區塊鍊、數字簽名 |
BLAKE3 | 可變長度 | 高安全性 | 高性能場景(如數據庫) |
如需更深入的技術細節,可參考密碼學标準文檔(如NIST FIPS 180-4)或開源哈希庫的實現(如OpenSSL)。
埃特諾氏窦背囊編碼子程式産前生長承擔費用醇脫氫镝發音學腹側牽引供水系統購買證關門規定的維修時間海軍監獄後奏曲回彈性開始發送信號潰爛性皮炎苦口兩眼分離過遠流動相離心研磨機每股股利與目前價格的比率偏差計算機篩選社會化部門雙碘酞酸水銀溫度表數字音量計穗帶