Python的hashlib提供了常见的摘要算法

Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等

计算出一个字符串的MD5值:

import hashlib
md5 = hashlib.md5()
md5.update(‘how to use md5 in python hashlib?‘.encode("utf8"))  #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码
print( md5.hexdigest())#返回十六进制
print( md5.digest()) #二进制

# 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:
md5 = hashlib.md5()
md5.update(‘how to use md5 in ‘.encode("utf8"))
md5.update(‘python hashlib?‘.encode("utf8"))
print( md5.hexdigest())#返回十六进制

上述结果:

d26a53750bc40b38b65a520292f69306
b‘\xd2jSu\x0b\xc4\x0b8\xb6ZR\x02\x92\xf6\x93\x06‘
d26a53750bc40b38b65a520292f69306

计算出一个字符串SHA1值:

import hashlib
sha_1 = hashlib.sha1()
sha_1.update(‘how to use sha1 in ‘.encode("utf8"))    #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码
sha_1.update(‘python hashlib?‘.encode("utf8"))
print (sha_1.hexdigest())

# 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:
sha2 = hashlib.sha1()
sha2.update(‘how to use sha1 in python hashlib?‘.encode("utf8"))
print (sha2.hexdigest())

打印结果:

2c76b57293ce30acef38d98f6046927161b46a44
2c76b57293ce30acef38d98f6046927161b46a44

读取文件获取MD5值:

import os
import hashlib
#文件md5
def file_md5(pathandname):
    if os.path.isfile(pathandname):
        hashmd5 = hashlib.md5()
        file = open(pathandname, ‘rb‘)
        while True:
            b = file.read(1024)
            if not b:
                break
            hashmd5.update(b)
        file.close()
        return hashmd5.hexdigest()
    else:
        return None

print(file_md5("C:\\Users\\Administrator\\Desktop\\V2.6.1_B511\\hvr_dec"))     #aef87d1d673ca52412b4a950a06b9557

原文地址:https://www.cnblogs.com/carey9420/p/12179496.html

时间: 2024-10-24 21:18:00

Python的hashlib提供了常见的摘要算法的相关文章

python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等) #http://www.cnblogs.com/BeginMan/p/3328172.html #以常见的摘要算法MD5为例,计算出一个字符串的MD5值 import hashlib m = hashlib.md5() #创建hash对象 m.update('xiaodeng') #更新哈希对象以字符串参数 print m.

Python模块——HashLib(摘要算法)与base64

摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示) 你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇文章的摘要是'2d73d4f15c0db7f5ecb321b6a65e5d6d'. 如果有人篡改了你的文章,并发表为'how to

Python模块——HashLib与base64

摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示) 你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇文章的摘要是'2d73d4f15c0db7f5ecb321b6a65e5d6d'. 如果有人篡改了你的文章,并发表为'how to

python模块: hashlib模块, configparse模块, logging模块

一. hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过.摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难.而且,对原

python模块 hashlib(加密服务)

https://docs.python.org/zh-cn/3/library/hashlib.html hashlib --- 安全哈希与消息摘要 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要digest algorithms算法呢?摘要算法又称哈希hash算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). hash算法 每种类型的hash都有一个构建器方法,返回一个hash对象和相同的简单接口.

python模块hashlib & hmac

Hash,译做“散列”,也有直接音译为“哈希”的.把任意长度的输入,通过某种hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值.该算法就是哈希函数,也称摘要函数. MD5是最常见的摘要算法,速度很快,生成结果是固定的16字节,通常用一个32位的16进制字符串表示.SHA1算法更安全点,它的结果是20字节长度,通常用一个40位的16进制字符串表示.而比SHA1更安全的算法是SHA256和SHA512等等,不过越安全的算法越慢,并且摘要长度更长. 两个模块主要用于加密相关的操作(加密数

python模块——hashlib

python模块--hashlib hashlib模块是对许多hash函数的一个公共接口 new(name, string = '')    执行给定的hash函数来返回一个新的hash对象,使用给定的字符串数据初始化hash对象.如: >>> import hashlib >>> hashlib.new('md5', string='abc').hexdigest()    #hexdigest() 使加密后的结果以十六进制显示 '900150983cd24fb0d6

Python的hashlib模块学习

python的hashlib模块提供一些常用的加密功能 例如获取字符串'Nobody inspects the spammish repetition'的MD5校验值 In [48]: import hashlib In [49]: m=hashlib.md5() In [50]: m.update('Nobody inspects') In [51]: m.update('the spammish repetition') In [52]: m.digest() Out[52]: '%\x8d

python之模块pprint之常见用法

# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块pprint之常见用法 import pprint data = [(1,{'a':'A','b':'B','c':'C','d':'D'}),(2,{'e':'E','f':'F','g':'G','h':'H','i':'I','j':'J','k':'K','l':'L'}),] print '--'*30 #1.打印效果 pprint.pprint (data) ''' ----