Python hashlib和hmac模块使用方法解析

python之hashlib模块:主要提供字符加密功能,python3中将md5和sha模块整合到了hashlib模块,支持md5,sha1, sha224, sha256, sha384, sha512等算法

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import hashlib
# md5 加密算法
a = hashlib.md5()
a.update("Hello Lanten.".encode("utf-8"))
print("md5 加密算法:", a.hexdigest())

# sha224 加密算法
b = hashlib.sha224()
b.update("Hello Lanten.".encode("utf-8"))
print("sha224 加密算法:", b.hexdigest())

# sha256 加密算法
c = hashlib.sha256()
c.update("Hello Lanten.".encode("utf-8"))
print("sha256 加密算法:", c.hexdigest())

# sha384 加密算法
d = hashlib.sha384()
d.update("Hello Lanten.".encode("utf-8"))
print("sha384 加密算法:", d.hexdigest())

# sha512 加密算法
e = hashlib.sha512()
e.update("Hello Lanten.".encode("utf-8"))
print("sha512 加密算法:", e.hexdigest())

python之hmac模块:可以对我们创建的key和内容进行处理后再进行加密

# hmac 加密算法模块
import hmac
message = b"Hello Lanten."
key = b"secret"
h = hmac.new(key, message, digestmod = "MD5")
# h = hmac.new(key)
# h.update(message)
print("hmac 加密算法:", h.hexdigest())

输出结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python3 hashlib密码散列算法原理详解

    1.hashlib密码散列 hashlib模块定义了一个API来访问不同的密码散列算法.要使用一个特定的散列算法,可以用适当的构造器函数或new()来创建一个散列对象.不论使用哪个具体的算法,这些对象都使用相同的API. 1.1 散列算法 由于hashlib有OpenSSL提供"底层支持",所以OpenSSL库提供的所有算法都可用,包括: md5 sha1 sha224 sha256 sha384 sha512 有些算法在所有平台上都可用,而有些则依赖于底层库.这两种算法分别由algo

  • Python3 加密(hashlib和hmac)模块的实现

    以下代码以Python3.6.1为例 hashlib : 不可逆加密 hmac : 不可逆键值对方式加密 hashlib模块简介: hashlib模块为不同的安全哈希/安全散列(Secure Hash Algorithm)和 信息摘要算法(Message Digest Algorithm)实现了一个公共的.通用的接口,也可以说是一个统一的入口.因为hashlib模块不仅仅是整合了md5和sha模块的功能,还提供了对更多中算法的函数实现,如:MD5,SHA1,SHA224,SHA256,SHA38

  • Python hashlib常见摘要算法详解

    这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等 计算出一个字符串的MD5值: import hashlib md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?'.encode("utf8")) #需要指定转码 否则报错 u

  • Python字符串hashlib加密模块使用案例

    主要用于对字符串的加密,最常用的为MD5加密: import hashlib def get_md5(data): obj = hashlib.md5() obj.update(data.encode('utf-8')) result = obj.hexdigest() return result val = get_md5('123') #这里放入要加密的字符串文字. print(val) #简便的写法: pwd = input('请输入密码:').encode('utf-8') result

  • Python加密模块的hashlib,hmac模块使用解析

    这篇文章主要介绍了Python加密模块的hashlib,hmac模块使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在写搬砖脚本中,碰到一个加密的信号标签文件无法运行. import hashlib import time m = hashlib.md5() api_key = '' api_secret = '' params = {'api_key':api_key, 'time':int(time.time()), 'symbol

  • Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析

    本文实例讲述了Python3.5内置模块之shelve模块.xml模块.configparser模块.hashlib.hmac模块用法.分享给大家供大家参考,具体如下: 1.shelve模块 shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据, 简单来说,使用者可以将一个列表.字典.或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来, 就是一个Python内存对象,不需要像传统数据库一样,先取出数据,

  • Python内置模块hashlib、hmac与uuid用法分析

    本文实例讲述了Python内置模块hashlib.hmac与uuid用法.分享给大家供大家参考,具体如下: 一.hashlib md5和sha算法通过消息摘要算法生成定长的消息摘要,消息摘要算法是不可逆的.但同一段消息通过摘要算法后得到的值是一样的,可一通过比对消息摘要验证数据的完整性. sha算法比MD5算法安全,但所需的时间也稍长. 1.原始消息摘要 import hashlib # ######## md5 ######## hash = hashlib.md5() hash.update

  • Python hashlib和hmac模块使用方法解析

    python之hashlib模块:主要提供字符加密功能,python3中将md5和sha模块整合到了hashlib模块,支持md5,sha1, sha224, sha256, sha384, sha512等算法 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import hashlib # md5 加密算法 a = hashlib.md5() a.update("Hello Lanten.".encode("utf-8"

  • Python标准库shutil模块使用方法解析

    shutil.rmtee 删除目录及以内的所有文件. import shutil shutil.rmtree(r'D:\python\222') #包括222在内的所有文件全部删除. shutil.move 重命名文件或文件夹 import shutil shutil.move(源名称,更改后名称) import shutil shutil.move(r'D:\python\b.log',r'D:\python\a.log') shutil.make_archive 压缩文件 import sh

  • Python hmac模块使用实例解析

    这篇文章主要介绍了Python hmac模块使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hmac模块的作用: 用于验证信息的完整性. 1.hmac消息签名(默认使用MD5加算法) hmac_md5.py #!/usr/bin/env python # -*- coding: utf-8 -*- import hmac #默认使用是md5算法 digest_maker = hmac.new('secret-shared-key'.

  • Python argparse模块使用方法解析

    这篇文章主要介绍了Python argparse模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 说明 argparse 模块是python 用于解析命令行参数和选项的标准模块. 程序定义它需要的参数,然后 argparse 模块将弄清如何从 sys.argv 解析出那些参数. argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息. 2. 使用流程 使用argparse 模块配置命令行参

  • python根据路径导入模块的方法

    本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考.具体方法如下: 常规做法如下: import sys sys.path.append('C:/full/path') from foo import util,bar 而要直接通过路径 import imp util = imp.load_source('util', 'C:/full/path/foo/util.py') 使用时使用util.method,此时并没有定义method method = util.method

  • python中删除某个元素的方法解析

    这篇文章主要介绍了python中删除某个元素的方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python中关于删除list中的某个元素,一般有三种方法:remove.pop.del 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 举例说明: >>> str=[1,2,3,4,5,2,6] >>> str.remove(2) >>> str [1, 3, 4, 5, 2,

  • Python离线安装PIL 模块的方法

    python的库一般都用pip安装. 但是有时候也会出现在线安装失败的情况,如下图安装PIL模块时报错: 这时候可以采取离线安装的方式: 一.首先下载离线安装包 PIL官方版不支持py3,不过有非官方那个的替代品pillow,地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow 注意选择版本:我的python是Python2.7,系统是64位的,但是安装了32位的Python2.7.10 选择 Pillow-4.2.1-cp27-none-wi

  • python循环嵌套的多种使用方法解析

    这篇文章主要介绍了python循环嵌套的多种使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用循环嵌套来获取100以内的质数 #!/usr/bin/python # -*- coding: UTF-8 -*- num=[]; i=2 for i in range(2,100): j=2 for j in range(2,i): if(i%j==0): break else: num.append(i) print(num) 使用嵌

  • python函数不定长参数使用方法解析

    这篇文章主要介绍了python函数不定长参数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pathon中的函数可以使用不定长参数,可以用参数*args接收单个出现的参数,接收后存成一个元组:用**kwargs接收以键值对形式出现的参数,接收后存丰一个字典.下面的小程序能说明这个问题 代码如下: def print_info(*args,**kwargs): for i in args: print(i) for i in kwar

随机推荐