杂凑
zácòu
〖ragbag;knocktogether〗把不同类别的事或人凑合于一处
这是一支杂凑的队伍,不堪一击
杂凑
杂凑(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
With flaws
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
否