一般翻译做散列、杂凑,或者音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。哈希有一个特别的特点,它不能通过结果推断出输入,又称为不可逆的算法。

>>> hash('aaa')
1359413279714269292

哈希特性:

①不可逆:在具备编码功能的同时,哈希也作为一种加密算法,即不能通过哈希值分析源文件的样子

②计算极快:1G的软件包和5k的文本复杂度相同,计算量都极小,在0.1s内可得到结果。

哈希的用途

①密码:日常使用的各种电子支付密码本质是都是基于hash的,你不用担心密码被泄露,因为你的登录密码经过hash+各种复杂算法得出密文后,再存进数据库里。

②文件的完整性校验:通过对文件进行hash,得到hash值,这样文件内容以后被修改了,hash值就会变。md5hash算法的“数字指纹”特性,使它成为应用最广泛的一种文件完整性校验和checksum算法。

③数字签名:数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者,接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用hash函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。

Categories: python

0 Comments

发表评论

Avatar placeholder

邮箱地址不会被公开。 必填项已用*标注