一般翻译做散列、杂凑,或者音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。哈希有一个特别的特点,它不能通过结果推断出输入,又称为不可逆的算法。
>>> hash('aaa')
1359413279714269292
哈希特性:
①不可逆:在具备编码功能的同时,哈希也作为一种加密算法,即不能通过哈希值分析源文件的样子
②计算极快:1G的软件包和5k的文本复杂度相同,计算量都极小,在0.1s内可得到结果。
哈希的用途
①密码:日常使用的各种电子支付密码本质是都是基于hash的,你不用担心密码被泄露,因为你的登录密码经过hash+各种复杂算法得出密文后,再存进数据库里。
②文件的完整性校验:通过对文件进行hash,得到hash值,这样文件内容以后被修改了,hash值就会变。md5hash算法的“数字指纹”特性,使它成为应用最广泛的一种文件完整性校验和checksum算法。
③数字签名:数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者,接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用hash函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。
0 Comments