首页 > 编程语言 >python基础学习-hashlib - 哈希函数模块

python基础学习-hashlib - 哈希函数模块

时间:2023-05-11 11:03:12浏览次数:57  
标签:hashlib 函数 python 摘要 指纹 Python 哈希

hashlib - 哈希函数模块

参考地址:Python-Core-50-Courses/第20课:Python标准库初探.md at master · jackfrued/Python-Core-50-Courses (github.com)

待补充 ......

哈希函数又称哈希算法或散列函数,是一种为已有的数据创建“数字指纹”(哈希摘要)的方法。哈希函数把数据压缩成摘要,对于相同的输入,哈希函数可以生成相同的摘要(数字指纹),需要注意的是这个过程并不可逆(不能通过摘要计算出输入的内容)。一个优质的哈希函数能够为不同的输入生成不同的摘要,出现哈希冲突(不同的输入产生相同的摘要)的概率极低,MD5、SHA家族就是这类好的哈希函数。

Python标准库的hashlib模块提供了对哈希函数的封装,通过使用md5sha1sha256等类,我们可以轻松的生成“数字指纹”。举一个简单的例子,用户注册时我们希望在数据库中保存用户的密码,很显然我们不能将用户密码直接保存在数据库中,这样可能会导致用户隐私的泄露,所以在数据库中保存用户密码时,通常都会将密码的“指纹”保存起来,用户登录时通过哈希函数计算密码的“指纹”再进行匹配来判断用户登录是否成功。

import hashlib

# 计算字符串"123456"的MD5摘要
print(hashlib.md5('123456'.encode()).hexdigest())

 很多网站在下载链接的旁边都提供了哈希摘要,完成文件下载后,我们可以计算该文件的哈希摘要并检查它与网站上提供的哈希摘要是否一致(指纹比对)。如果计算出的哈希摘要与网站提供的并不一致,很有可能是下载出错或该文件在传输过程中已经被篡改,这时候就不应该直接使用这个文件。

标签:hashlib,函数,python,摘要,指纹,Python,哈希
From: https://www.cnblogs.com/ashuai123/p/17390407.html

相关文章

  • python基础学习-random
    参考地址:Python-Core-50-Courses/第20课:Python标准库初探.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)待补充......random-随机数和随机抽样模块生成随机数、实现随机乱序和随机抽样,下面是常用函数的列表。getrandbits(k):返回具有k个随机比特位的整数......
  • python基础学习-os.path - 路径操作相关模块
    参考地址:Python-Core-50-Courses/第20课:Python标准库初探.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)待补充......os.path模块封装了操作路径的工具函数,如果程序中需要对文件路径做拼接、拆分、获取以及获取文件的存在性和其他属性,这个模块将会非常有帮助......
  • Python打包exe,执行报player组件缺失“File "plyer\facades\notification.py", line
    之前的打包方式:pyinstaller--onefile--windowedpythonfilename.py执行exe报错:修改打包命令:pyinstaller--onefile--windowed--hidden-importplyer.platforms.win.notificationpythonfilename.py执行新的exe,正常弹窗,错误消失,win10toast组件实现类似功能,打包也......
  • python 内置常量
    1_debug_如果Python没有以-O选项启动,则此常量为真值-O表示移除assert语句以及任何以debug的值作为条件的代码注意O是大写的英文字母,小写会无法识别执行2Ellipsis等同于...属于ellipsis类型,就和None数据NoneType类型类似官方说这个东西主要用途是,自定......
  • 【2023最新】小白Anaconda+Python+Jupyter环境安装教程+kernel安装
    目录下载Anaconda安装包安装配置Anaconda环境测试是否安装成功为anaconda添加国内源创建环境JupyterNotebook启动Jupyter更改默认工作目录在jupyter中使用conda中安装的虚拟环境参考博客下载Anaconda安装包历史版本(最新版本可能安装不了旧版Python)https://repo.anaconda.com/......
  • python库之turtle库(1)
    Python的turtle库是一个用于绘制图形的库,它来自WallyFeurzeig,SeymourPapert于1967年在麻省理工学院MIT人工智能实验室开发的Logo编程语言。由于turtle绘图十分的直观而且十分受欢迎,所以turtle也逐渐的成为了Python的标准库之一。它很容易学习并且使用简单。安装turtle......
  • python基础学习-面向对象
     Python-Core-50-Courses/第17课:面向对象编程入门.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)Python-Core-50-Courses/第18课:面向对象编程进阶.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)......
  • python创建虚拟环境
    创建虚拟环境所用包virtualenv查看是否有虚拟环境virtualenv--version安装虚拟环境命令pipinstallvirtualenv创建虚拟环境(.venv是环境名字,可以随意取)virtualenv.venv激活虚拟环境cd.venv/Scripts目录下执行activate执行成功后即可此时即可安装第三方库或者运......
  • [NISACTF 2022]ezpython
    查壳:(后来发现:但凡有这玩意的都和解包有关)32位,运行,发现让我们输入一个key,进IDA:把能找的都找了,愣是没发现什么,除了一个类似base64的编码,实在没办法,去看了大佬的文章,说是py下的exe的解包,跟据大佬们的思路来了一波,果然出来了。开始吧,首先是将该运行文件与pyinstxtractor放一起(这......
  • 盘点一个初学者容易遇到的Python作用域问题
    大家好,我是皮皮。一、前言前几天在Python白银交流群【王王雪饼】问了一个Python基础的问题,这里拿出来给大家分享下。下图是她的报错截图:二、实现过程这里【像风自由】给了一个解决思路,从报错上看,其实就是变量没有定义,后来定义了还是有问题:不过感觉还是哪里不对,继续找bug......