品易云推流 关闭
文章详情页
文章 > Python基础教程 > python中hash算法是否可逆

python中hash算法是否可逆

Python hash算法可逆

头像

小妮浅浅

2021-01-11 15:24:384263浏览 · 0收藏 · 0评论

我们可以在运算中加入数字输出,根据不同的数字和运算规则。不过在python中数字就有了多种的可能性,出现字符串也是有可能的。有时候我们能够根据结果重头计算出输入的数字,对于在hash算法中是否同样适用,这需要今天小伙伴们来一起探索。下面就python中hash算法是否可逆展开讲解。

1.hash概念

hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。

它其实就是一个算法,最简单的算法就是加减乘除,比方,我设计个数字算法,输入+7=输出,比如我输入1,输出为8;输入2,输出为9。

哈希算法不过是一个更为复杂的运算,它的输入可以是字符串,可以是数据,可以是任何文件,经过哈希运算后,变成一个固定长度的输出,该输出就是哈希值。但是哈希算法有一个很大的特点,就是你不能从结果推算出输入,所以又称为不可逆的算法

2.hash值特点

(1)只要传入的内容一样,得到的hash值必然一样(要用明文传输密码文件的完整性校验)

(2)不能由hash值反解成内容(把密码做成hash值,不应该在网络上传输明文密码)

(3)只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的

>>> hash('我爱你')
3471388576844338423
>>> hash('小猿圈')
5000768010434506639

如上所示,输入“我爱你”三个字,经过哈希运算后,会得到一个随机数列,而且不管你的输入文件多大,最后得到的结果都是这么一个固定长度的数列,即使你输入的是一部电影,输出也是这么大。而且通过数列不能推导出输入。

以上就是小编来领大家探究python中hash算法是否可逆的过程,根据我们的研究可以发现,这个过程是不可逆的,小伙伴们一定要记住啦。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图