美文网首页
python之哈希算法

python之哈希算法

作者: 九月猫娘 | 来源:发表于2020-05-06 03:40 被阅读0次

哈希(Hash)算法:`hash(object)`

一,基本概念

哈希算法将一个不定长的输入,通过散列函数变换成一个定长的输出,即散列值。是一种信息摘要算法。对象的hash值比原对象拥有更低的内存复杂度。

 二,hash算法与加密的区别

它不同于加密。哈希(hash)是将目标文本转换成具有相同长度的,不可逆的杂凑字符串,而加密则是将文本转换为具有相同长度的,可逆的密文。

哈希(hash)算法是不可逆的,只能由输入产生输出,不能由输出产生输入。而加密则是可逆的。即可以从输入产生输出,也可以反过来从输出推出输入。

三,哈希碰撞(Collision)

对于hash算法,不同的数据应该生成不同的哈希值。如果两个不同的数据经过Hash函数计算得到的Hash值一样。就称为哈希碰撞(collision)。哈希碰撞无法被完全避免。只能降低发生概率。

好的hash函数会导致最少的hash碰撞。

*

 四,为什么不能对可变的对象进行hash处理?

可哈希性(hashable):

可哈希的数据类型为不可变的数据结构(如字符串srt,元组tuple,对象集objects等)。这种数据被称为可哈希性。

不可哈希性:

不可哈希的数据类型,为可变的数据结构(如字典dict,列表list和集合set等)。

如果对可变的对象进行哈希处理,则每次对象更新时,都需要更新哈希表。这样我们则需要将对象移至不同的数据集,这种操作会使花费过大。

因此设定不能对可变的对象进行hash处理。

**

五,Python3.x增加的随机性

**

Python3.x添加了hash算法的随机性,以提高安全性,因此对于每个新的python调用,同样的数据源生成的结果都将不同。

哈希方法有(MD5, SHA1, SHA256与SHA512等)。常用的有SH256与SHA512。MD5与SHA1不再常用。

- MDH5 (不常用)

- SHA1 (不常用)

- SHA256 (常用)

- SHA512 (常用)

六,其他hash算法

1. simhash算法:

一种局部敏感的hash算法,它产生的签名在一定程度上可以表征原内容的相似度。

> 可以被用来比较文本的相似度。

安装simhash:


Pip3 install simhash


**2. Imagehash算法:*

感知哈希算法(perceptual Hash Algorithm)。用于检测图像和视频的差异。

安装Imagehash:


pip3 install Imagehash


比较下面两张图片的Imagehash值

可以看到两张图片的hash值非常相似。相似的图片可以生成相似的哈希值是Imagehash的特点。

相关文章

  • python之哈希算法

    哈希(Hash)算法:`hash(object)` 一,基本概念 哈希算法将一个不定长的输入,通过散列函数变换成一...

  • 图片资源hash值以及ImageMagick探索

    相关链接 ImageMagick功能 用 Python 实现哈希算法检测重复图片 感知哈希算法有关 iOS 马甲包...

  • 拓展

    哈希算法 Python哈希查找,构建简单哈希表http://blog.csdn.net/tingyun_say/a...

  • P63-哈希表查找

    查找算法之哈希查找

  • Python hashlib模块

    Python的hashlib提供了常见的摘要算法,摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据...

  • hmac

    Python自带的hmac模块实现了标准的Hmac算法。和我们自定义的加salt算法不同,Hmac算法针对所有哈希...

  • python加密

    python中hashlib提供了常见的摘要算法,如MD5,SHA1等等 什么是摘要算法呢?摘要算法又称哈希算法\...

  • 52. 摘要算法hashlib

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法...

  • hashlib库 -摘要算法,

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法...

  • 摘要算法

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。摘要算法又称哈希算法、散列算法。它通过一...

网友评论

      本文标题:python之哈希算法

      本文链接:https://www.haomeiwen.com/subject/sogbghtx.html