2019独角兽企业重金招聘Python工程师标准>>>

hashlib的md5和sha1等的运用

import hashlib
print(hashlib.algorithms_available)
print(hashlib.algorithms_guaranteed)

#MD5
import hashlib
hash_object = hashlib.md5(b'Hello World')
print(hash_object.hexdigest())

#
import hashlib
mystring = input('Enter String to hash: ')
# Assumes the default UTF-8
hash_object = hashlib.md5(mystring.encode())
print(hash_object.hexdigest())

#sha1
import hashlib
hash_object = hashlib.sha1(b'Hello World')
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha224
import hashlib
hash_object = hashlib.sha224(b'Hello World')
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha256
import hashlib
hash_object = hashlib.sha256(b'Hello World')
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha384
import hashlib
hash_object = hashlib.sha384(b'Hello World')
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha512
import hashlib
hash_object = hashlib.sha512(b'Hello World')
hex_dig = hash_object.hexdigest()
print(hex_dig)

#new&update
import hashlib
hash_object = hashlib.new('DSA')
hash_object.update(b'Hello World')
print(hash_object.hexdigest())

例:

import uuid
import hashlibdef hash_password(password):# uuid is used to generate a random numbersalt = uuid.uuid4().hexreturn hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + saltdef check_password(hashed_password, user_password):password, salt = hashed_password.split(':')return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest()new_pass = input('Please enter a password: ')
hashed_password = hash_password(new_pass)
print('The string to store in the db is: ' + hashed_password)
old_pass = input('Now please enter the password again to check: ')
if check_password(hashed_password, old_pass):print('You entered the right password')
else:print('I am sorry but the password does not match')

文件的hash

#MD5 File Hash in Python
import hashlib
hasher = hashlib.md5()
with open('myfile.jpg', 'rb') as afile:buf = afile.read()hasher.update(buf)
print(hasher.hexdigest())#MD5 Hash for Large Files in Python
import hashlib
BLOCKSIZE = 65536
hasher = hashlib.md5()
with open('anotherfile.txt', 'rb') as afile:buf = afile.read(BLOCKSIZE)while len(buf) > 0:hasher.update(buf)buf = afile.read(BLOCKSIZE)
print(hasher.hexdigest())#SHA1 File Hash in Python
import hashlib
BLOCKSIZE = 65536
hasher = hashlib.sha1()
with open('anotherfile.txt', 'rb') as afile:buf = afile.read(BLOCKSIZE)while len(buf) > 0:hasher.update(buf)buf = afile.read(BLOCKSIZE)
print(hasher.hexdigest())

转载于:https://my.oschina.net/lenglingx/blog/348689

字符串以及文件的hashlib的md5和sha1等的运用相关推荐

  1. 批量获取文件的摘要(md5、sha1、sha256)

    批量获取文件的摘要(md5.sha1.sha256) 0x01 功能 0x02源码 0x03运行 0x01 功能 刚刚写了一个小工具:用于批量获取文件的摘要:md5.sha1.sha256 具体用法: ...

  2. Java 原生 Base64 编解码、Md5、SHA-1、SHA-256 加密摘要算法

    目录 常用加密算法对比 Base64 编解码 MessageDigest 信息摘要 MD5 信息摘要算法 常用加密算法对比 常用加密算法对比 Base64 编解码 1.BASE64 有自己的编码表,可 ...

  3. linux md5 加密字符串和文件方法

    linux md5 加密字符串和文件方法 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意 ...

  4. hashlib —— Python 的 md5 和 sha1 加密

    python的md5和sha1加密 0. md5 与 sha1 MD5 的全称是 Message-Digest Algorithm 5(信息-摘要算法).128 位长度.目前 MD5 是一种不可逆算法 ...

  5. 用Python中的hashlib实现md5和sha加密

    文章目录 一.用 pandas 读取 Excel 数据 二.加密库 hashlib 三. pandas中的 map() 方法 四.数据加密工具 本文分享知识: pandas读取Excel数据 read ...

  6. 【Python】计算文件的MD5、SHA1、SHA256值(校验文件完整性)

    引言 从网络上下载大文件时,官网一般都会提供一个MD5.SHA1或SHA256值: 很多同学可能会好奇这些东西到底是干嘛的?其实这是用来校验文件完整性的.因为从网络上下载大文件具有不确定性,可能会受很 ...

  7. Unity编辑器小工具——文件查重(MD5)

    Unity编辑器小工具--文件查重(MD5) 算法思想: 在Unity中,每一个不同资源.文件所生成MD5码是不同的,但是相同文件,路径不同.文件名不同的同一类文件的MD5码是相同的,所以可以通过生成 ...

  8. 用Python校验下载文件的完整性(md5),游戏之类的大型文件

    对于大的文件,比如大型游戏,下载一般会带有md5值在下载包里面,md5是一种加密手段,在这里可以用来验证完整性,因为在下载大型文件的时候某个部分可能网络传输会出现错误,一个小文件坏了可能会导致游戏玩到 ...

  9. Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)

    Python hashlib 加密 Python 提供了 hashlib 模块来进行加密操作.在下面的文章中,我们将介绍 hashlib 模块的常用加密算法. 1. hashlib 简介 hashli ...

最新文章

  1. day07 数据类型的内置方法(列表的内置方法)
  2. 配置文件详解_Keepalived配置文件详解
  3. C++的Json解析库:jsoncpp和boost
  4. 真正释放Maven和Java EE的强大功能
  5. 从零开始学习jQuery (三) 管理jQuery包装集【转】
  6. flask-restful接口
  7. 七大新品集中亮相,腾讯云AI大数据全线升级!
  8. CVPR 2020百度-涵盖全视觉领域22篇
  9. C#中Datatable的Compute的用法(转载)
  10. CRF++中的unigram和bigram features指定是uni/bigrams的输出标签
  11. 计算机网络第四章思维导图_初级会计实务的第四章所有者权益的思维导图丨初级讲堂...
  12. Atitit spirngboot 访问 html文件总结 自设计web服务器原理与实现 Url路由压力,读取url,获得项目更路径绝对路径,拼接为文件路径。读取文建内容输出即可 目录路径 u
  13. 【Gym-100085 B】Binary Encoding【思维题】
  14. LayoutLM——文本与布局的预训练用于文档图像理解
  15. ad7705c语言程序,TM7705低成本16位高精度ADC方案 附技术手册和C语言代码
  16. 物理地址是怎么确定的?以8086为例
  17. reactHooks中使用events全局通信
  18. 声网实时连麦互动助力CCtalk万人互动课堂
  19. 炒菜机器人“精确”破题中餐标准化
  20. 统计学习方法 - 绪论部分

热门文章

  1. linux之ssh-keygen命令
  2. 在线下划线转驼峰,驼峰转下划线工具
  3. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.23. 行和数组比较
  4. MySQL - ERROR 1406
  5. linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效...
  6. 输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m 转载
  7. Redis 常见的性能问题和解决方法
  8. vmware-linux虚拟机上网配置
  9. ProcessOnLoading
  10. 代码无错是优? 工厂模式