根本含意
先来从根本定义动手。哈希,英文是 hash,原本意思是”切碎并搅拌“,有一种食物就叫 Hash,就是把食材切碎并搅拌一下做成的。哈希函数的运算后果就是哈希值,通常简称为哈希。哈希游戏开发找 l99 掂 z465 薇 o854。哈希函数有时候也翻译做散列函数,也就是把数据拆散而后重新排列。
依据维基百科的定义,哈希函数要做的事件是给一个任意大小的数据生成出一个固定长度的数据,作为它的映射。所谓映射就是一一对应。一个牢靠的哈希算法要满足三点。第一是平安,给定数据 M 容易算出哈希值 X,而给定 X 不能算出 M,或者说哈希算法应该是一个单向算法。第二是举世无双,两个不同的数据,要领有不雷同的哈希。第三是长度固定,给定一种哈希算法,不论输出是多大的数据,输入长度都是固定的。然而认真想一下,如果哈希的长度是固定的,也就是取值范畴是无限的,而输出数据的取值范畴是有限的,所以总会找到两个不同的输出领有雷同的哈希。所以,哈希函数的安全性必定是个绝对概念。如果呈现了两个不同输出有雷同输入的状况,就叫碰撞,collision。不同的哈希算法,哈希位数越多,也就根本意味着安全级别越高,或者说它的”抗碰撞性“就越好。
再来说说哈希函数的次要作用。哈希的举世无双性,保障了如果数据在存储或者传输过程中有丝毫损坏,那么它的哈希就会变。哈希函数的次要作用就是进行完整性校验,残缺的意思是数据无损坏。哈希有很多不同的称说,有时候叫 digest 摘要,有时候叫 Checksum 校验值,有时候叫 fingerprint 指纹,其实说的意思差不多,就是用哈希来代表数据自身进行比照,依据比照后果判断数据是否放弃不变。
所以说,哈希函数的根本作用就是给大数据算出一个摘要性的长度固定的字符串,也就是所谓的哈希。哈希的作用次要是进行完整性校验。