Python中的hash
有没有想过,Python中的字典为什么这么高效稳定。原因是他是建立在hash表上。了解Python中的hash表有助于更好的理解Python,因为Python中字典无处不在。
hash函数
哈希函数是一个可以将任意长度的数据块映射到固定长度的值,这个步骤称为hash,也就是散列。
hash函数有三个主要的特征:
计算迅速:计算一个数据块的hash值非常快
确定性:相同用字符串会产生相同的hash值
结果固定长度:不管输入的是,一个字节还是十个字节,或者上万个字节,结果总是预先确定的长度。
另一个特征在hash函数中非常普遍,即他们是单方向的:通过函数实现后,原始数据丢失了,我们可以通过字符串得到一个hash值,但不能通过一个hash也就是散列得到原始的字符串(因为有对数据降维的方法会造成数据的丢失)。这种特性并不是对所有hash函数的强制性规定,但是当需要加密安全时,这种性质还是挺好用的。
一些比较受欢迎的算法包括:MD5、SHA-1、SHA-2,NTLM.
关于hash的一些使用方法
很多东西都依赖hash,hash表就是其中一例,另一些用法是出于加密和的原因
一个具体的例子就是当你尝试从网上下载开源软件时。通常你都会发现一个关联文件,这个关联文件就是这个文件签名。这个签名仅仅是源文件的散列值它非常有用,你为你可以自己通过计算下载好的文件的散列值并与网站上提供的签名进行对比,这样就可以确认你自己下载的文件没有损坏。
另一种用法是存储用户的密码。你有没有问过你自己,当你忘掉了一个网站的登录密码的时候,你还想从这个网站上恢复登录,它只会让你重新确定一个新的登录密码而不是给你原来你选择的密码,这是因为网站并不会储存你完整的密码,而是你密码的hash值。
这么做是出于安全因素,因为如果黑客搞到了数据库的权限,他们不会知道你真实的密码,而是仅仅得到你密码的哈希值,又因为哈希函数是单向的,他们根本不可能从哈希值得到你的密码
以上内容为大家介绍了Python中的hash,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。
相关推荐HOT
更多>>pythonstr函数怎么使用
str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式。其语法格式为str(object)返回值:返回object的字符串形式使用示例...详情>>
2023-11-12 22:15:45python有哪些推荐使用的装饰器?
众所周知,Python语言非常强大,有很多优点。值得一提的是,它可以将所有功能打包成一个小包,非常实用有效。它还使Python语言更加灵活和有效地...详情>>
2023-11-12 21:50:16python怎么导包
python中的包即为模块,模块就是以.py类型结尾的python文件。导入模块常用的方式是importmodel_name,或者用from..importmodel_name,下面分别说...详情>>
2023-11-12 19:02:24python怎样终止线程
在python中启动和关闭线程:一、启动线程首先导入threadingimportthreading然后定义一个方法defserial_read():......然后定义线程,target指向...详情>>
2023-11-12 14:05:06