哈希函数(hash函数)

hash,—般译为“散列”,也可以直接音译为“哈希”,是对输入的任意长度(又称预映射),通过哈希算法,转换成固定长度的哈希值输出。这种转换是一种压缩映射,即,哈希值空间通常比输入空间小得多,不同的输入可能会散列到相同的输出,但对于给定的一个散列值,无法唯一确定其输入值,也就是说这个过程是不可逆的。简单的说就是一种将任意长度的消息用一个固定长度的消息摘要函数来概括。hash值可以通过公式h=H(M)计算。
一般来说,函数应该满足以下条件:
(1)Hash可用于任意大小的数据块;
(2)hash可以接受任意长度的信息,并将其输出成固定长度的消息摘要;
(3)单向性。给定一个输入M,一定有一个h与其对应,满足H(M)=h,反之,则不行,算法操作是不可逆的。
(4)抗碰撞性。给定一个M,要找到一个M’满足是不可H(M)=H(M’)是不可能的。即不能同时找到两个不同的输入使其输出结果完全一致。
(5)低复杂性:算法具有运算的低复杂性。

原文地址:https://www.cnblogs.com/abella/p/9981781.html