首页 > 编程语言 >【Python】hmac模块_基于密钥的消息验证

【Python】hmac模块_基于密钥的消息验证

时间:2023-05-26 14:48:27浏览次数:75  
标签:__ utf Python self msg 密钥 encode hmac

HMAC算法可以用于验证信息的完整性,这些信息可能在应用之间或者网络间传递

 

1、SHA加密

 

# -*- coding:utf-8 -*-

import hmac
import hashlib


class hmac_tools:

    def __init__(self):
        self.key = "a12345678"

    def sha512Encrypt(self, msg):
        h = hmac.new(self.key.encode("utf-8"), msg.encode("utf-8"), "sha512")

        return h.hexdigest()

    def sha384Encrypt(self, msg):
        h = hmac.new(self.key.encode("utf-8"), msg.encode("utf-8"), "sha384")

        return h.hexdigest()

    def sha256Encrypt(self, msg):
        h = hmac.new(self.key.encode("utf-8"), msg.encode("utf-8"), "sha256")

        return h.hexdigest()

    def sha1Encrypt(self, msg):
        h = hmac.new(self.key.encode("utf-8"), msg.encode("utf-8"), hashlib.sha1)
        return h.hexdigest()

    def md5Encrypt(self, msg):
        h = hmac.new(self.key.encode("utf-8"), msg.encode("utf-8"), "md5")
        return h.hexdigest()


if __name__ == "__main__":
    """run"""
    print("sha512加密:", hmac_tools().sha512Encrypt("this is message"))
    print("sha384加密:", hmac_tools().sha384Encrypt("this is message"))
    print("sha256加密:", hmac_tools().sha256Encrypt("this is message"))
    print("sha1加密:", hmac_tools().sha1Encrypt("this is message"))
    print("md5加密:", hmac_tools().md5Encrypt("this is message"))

 

  

执行结果:

 

 

 

 

 

 

官方文档:https://docs.python.org/zh-cn/3/library/hmac.html

标签:__,utf,Python,self,msg,密钥,encode,hmac
From: https://www.cnblogs.com/phoenixy/p/17434000.html

相关文章

  • python生产力工具
    python做为一个使用简单,容易上手的编程语言,在大数据,人工智能出现之后,被使用的更加广泛了,通过它来写一个数据处理,挖掘更加得心应手了。IDE生产力工具PyCharm2022.2(ProfessionalEdition),属于jetbrain公司的一个产品本地安装python3.6,pip包管理工具hellowordimporthello......
  • python_操作excel
    摘自微信读书:《超简单:用Python让excel飞起来》Python处理excel的模块:xlsxWriter,xlrd,xlwt,xlutils,openpyxl,xlwings等其中:xlwings功能最强大,支持批量操作,还可与excelVBA结合使用区别如下:参考语句:importxlwingsasxwapp=xw.App(visible=False,add_book=False)foriinra......
  • python 创建、拷贝、移动、删除、遍历文件和文件夹
    python创建、拷贝、移动、删除、遍历文件和文件夹1、创建文件夹importosdefcreate_folder(folder:str):folder=os.path.abspath(folder)ifnotos.path.exists(folder):try:os.makedirs(folder)print(f"创建了文件夹:{fo......
  • 如何优化Python爬虫的速度?
    Python爬虫慢的原因有很多,网络延迟高、爬取数据量过大、爬虫程序设计问题、不合理的请求头设置、Python解释器性能问题等都是制约爬虫速度的重要因素。总之,在遇到Python爬虫慢的问题时,需要详细了解可能出现的原因,并根据具体情况进行相应的调整和改进,保证程序的稳定性和效率。......
  • python 自动化 selenium 入门
    Selenium创建基于浏览器的强大回归自动化套件和测试。而要控制和驱动实际的浏览器浏览器,需要下载与浏览器对应品牌和版本的WebDriver驱动程序。比如chrome和edge浏览器分别对应:chromedriver.exe和msedgedriver.exe如果你不想手动下载,也可以安装webdriver-manager自动......
  • 如何优化Python爬虫的速度?
    Python爬虫慢的原因有很多,网络延迟高、爬取数据量过大、爬虫程序设计问题、不合理的请求头设置、Python解释器性能问题等都是制约爬虫速度的重要因素。总之,在遇到Python爬虫慢的问题时,需要详细了解可能出现的原因,并根据具体情况进行相应的调整和改进,保证程序的稳定性和效率。以......
  • 如何用python的pysmb模块,下载smb服务器上的以deb结尾文件?
    需求:如何用python的pysmb模块,下载smb服务器上的以deb结尾文件?服务器在192.168.9.5扩展需求:有时候,也会下载以xxx开头的文件。实现方式:#!/usr/bin/envpython#-*-coding:utf-8-*-#安装依赖模块:pipinstallpysmbfromsmb.SMBConnectionimportSMBConnec......
  • 分享Python采集77个焦点图,总有一款适合您
    Python采集的77个焦点图下载链接:https://pan.baidu.com/s/1DwOhWYWWRYHnAy-ZwWBTmg?pwd=xj5a提取码:xj5ajQuery全屏背景跟随手风琴图片切换特效HTML5焦点图片波浪过渡效果切换动画特效jQuery+HTML53D折页图片切换特效jQuery图片手风琴滑动展开特效jQuery点击右侧按钮图片滑动切换......
  • python 名称空间与作用域(笔记整理)
    一、名称空间什么是名称空间:名称空间就是存放变量名和变量值绑定关系的地方就是内存地址在程序执行期间最多会存在三种名称空间:内置名称空间:是Python解释器默认预定义大量内置函数和内置异常的名称空间,就是存放解释器自带函数方法的名称空间可以通过dir(builtins)来......
  • 01.初识Python
    本教程计划通过100天的时间,每天分享一篇关于python的知识点,与大家一起学习python这门编程语言。Python对初学者来说是一门很棒的语言:容易学有一个积极的支持社区在网络开发、游戏、数据科学方面提供多种机会。Python的应用领域目前Python在Web应用开发、云基础设施、De......