散列
维基百科,自由的百科全书
(重定向自哈希)
| 建議将此條目或章節合併至散列函数。(討論) |
雜湊(英语:Hashing)是電腦科学中一種对資料的处理方法,通过某种特定的函数/算法(称为雜湊函数/算法)将要检索的项与用来检索的索引(称为雜湊,或者雜湊值)关联起来,生成一种便于搜索的資料結構(称为雜湊表)。也译为散列。旧译哈希(误以为是人名而采用了音译)。它也常用作一种資訊安全的實作方法,由一串資料中經過雜湊演算法 (Hashing algorithms) 計算出來的資料指紋 (data fingerprint),經常用來識別檔案與資料是否有被竄改,以保證檔案與資料確實是由原創者所提供。
如今,雜湊演算法也被用來加密存在資料庫中的密碼 (password) 字串,由於雜湊演算法所計算出來的雜湊值 (Hash Value) 具有不可逆 (無法逆向演算回原本的數值) 的性質,因此可有效的保護密碼。
[编辑] 雜湊函數
使用雜湊的方式包括:
- 在信息安全领域使用
- 一种常常使用散列表来实现的数据结构
- 寻找相同或相似的几何形状的一种有效方法
[编辑] 目前常見的雜湊演算法
| 演算法名稱 | 輸出大小 (bits) | 內部大小 | 區塊大小 | 長度大小 | 字符尺寸 | 碰撞情形 |
|---|---|---|---|---|---|---|
| HAVAL | 256/224/192/160/128 | 256 | 1024 | 64 | 32 | 是 |
| MD2 | 128 | 384 | 128 | No | 8 | 大多數 |
| MD4 | 128 | 128 | 512 | 64 | 32 | 是 |
| MD5 | 128 | 128 | 512 | 64 | 32 | 是 |
| PANAMA | 256 | 8736 | 256 | 否 | 32 | 是 |
| RadioGatún | Arbitrarily long | 58 words | 3 words | 否 | 1-64 | 否 |
| RIPEMD | 128 | 128 | 512 | 64 | 32 | 是 |
| RIPEMD-128/256 | 128/256 | 128/256 | 512 | 64 | 32 | 否 |
| RIPEMD-160/320 | 160/320 | 160/320 | 512 | 64 | 32 | 否 |
| SHA-0 | 160 | 160 | 512 | 64 | 32 | 是 |
| SHA-1 | 160 | 160 | 512 | 64 | 32 | 有缺陷 |
| SHA-256/224 | 256/224 | 256 | 512 | 64 | 32 | 否 |
| SHA-512/384 | 512/384 | 512 | 1024 | 128 | 64 | 否 |
| Tiger(2)-192/160/128 | 192/160/128 | 192 | 512 | 64 | 64 | 否 |
| WHIRLPOOL | 512 | 512 | 512 | 256 | 8 | 否 |