Python——hmac
该模块在Python中实现 RFC 2104 中规范的 HMAC 算法。
目录
一、HMAC 对象
- hmac.new(key[, msg[, digestmod]])
- 返回一个新的 hmac 对象。如果提供了 msg ,该方法调用 update(msg) 。 digestmod 是 HMAC 对象将要使用的摘要构造器或模块。 缺省为 hashlib.md5。
HMAC 对象有以下方法
1.
- HMAC.update(msg)
- 用 string 参数 msg 来更新 HMAC 对象。重复调用该方法等价于一次调用该方法,但传入所有参数按调用的顺序连接的值。即 m.update(a); m.update(b) 等价于 m.update(a + b)。
- 2.
- HMAC.digest()
- 返回到目前为止传递给 update() 方法的字符串的摘要(字节串)。这个字串和传给构造器的 digest 的 digest_size 一样长,可能会包括非 ASCII 字符,包括 NUL 字节。
- 警告:
- 当比较 digest() 的结果和外部提供的两个摘要时,建议使用 compare_digest() 函数而不是 “==” 操作符,这样可以降低定时攻击(timing attack)的风险。
-
- 3.
- HMAC.hexdigest()
- 就像 digest() 一样,除了返回一个 digest() 的结果两倍长的只包含十六进制数的摘要。可以应用于一些非二进制的环境中。
- 警告:
- 当比较 digest() 的结果和外部提供的两个摘要时,建议使用 compare_digest() 函数而不是 “==” 操作符,这样可以降低定时攻击(timing attack)的风险。
- 4.
- HMAC.copy()
- 返回 HMAC 对象的拷贝,可以有效地计算某些具有相同子串的字符串的摘要。
二、辅助函数
- hmac.compare_digest(a, b)
- 返回 a == b. 该函数通过禁止基于内容的短路(short circuiting)行为来阻止定时分析(timing analysis),从而适用于密码学。 参数中的 a 和 b 必须是相同类型的,要么是 unicode 要么是一个类字节对象(bytes-like object)。
- 注意:
- 如果 a 和 b 的长度不同,或者一个错误发生,定时攻击理论上可以得知 a 和 b 的长度和类型,但是不能获得它们的值。
- (Python 2.7.7 后引入)
Python——hmac的更多相关文章
- php hash_hmac 与python hmac 区别
使用 HMAC 方法生成带有密钥的哈希值 hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = fal ...
- python hmac解密
import hmac def get_singa_true(timestamp): sha1 = hmac.new("d1b964811afb40118a12068ff74a12f4&qu ...
- python hmac 加密
python2 : key 是秘钥 类型为 str msg 要加密的文件 str digestmod 要加密的方式 python3: key 是秘钥 类型为 byte msg 要加密的文件 byte ...
- HMAC(Hash-based Message Authentication Code)实现原理
1.HMAC 概念 HMAC(Hash-based Message Authentication Code)基于 hash 的消息验证码,是 安全通信中必要的组成部件. 主要是 防止消息被篡改,和对称 ...
- python 内置模块之hashlib、hmac、uuid
一.hashlib md5和sha算法通过消息摘要算法生成定长的消息摘要,消息摘要算法是不可逆的.但同一段消息通过摘要算法后得到的值是一样的,可一通过比对消息摘要验证数据的完整性. sha算法比MD5 ...
- Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)
本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...
- 【Python】 hash值计算 hashlib & hmac
hashlib & hmac *不是很清楚能不能把这种hash值取样算法称之为加密,但是似乎好像也是这么说的哈(非科班出身的野路子就是没这种基本知识的) ■ 基本用法 hashlib支持MD5 ...
- python模块:hmac
"""HMAC (Keyed-Hashing for Message Authentication) Python module. Implements the HMAC ...
- Python之数据加密与解密及相关操作(hashlib、hmac、random、base64、pycrypto)
本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...
随机推荐
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-2 动画过渡
动画过渡(Transitions) 这一小节我们先来讲“动画过渡(Transitions)”这个插件的使用,源文件:transition.js Bootstrap框架默认给各个组件提供了基本动画的过渡 ...
- Python实现归并排序
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/18 14:26 # @Author : baoshan # @Site ...
- OSSIM架构与组成综述
OSSIM布道师 李晨光 一.背景 如果运维工程师手里没有高效的管理工具支持,就很难快速处理故障.市面上有很多运维监控工具,例如商业版的 Solarwinds.ManageEngine以及WhatsU ...
- LeetCode: Binary Tree Level Order Traversal 解题报告
Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...
- php 找出异常发生的地方
多层嵌套发生异常,找到异常最早发生的地方. final public int Exception::getLine ( void ) final public string Exception::ge ...
- 4. EM算法-高斯混合模型GMM详细代码实现
1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 EM ...
- 3. EM算法-高斯混合模型GMM
1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 GM ...
- vs2010密钥
vs2010密钥 YCFHQ-9DWCY-DKV88-T2TMH-G7BHP
- 神奇的bug,退出时自动更新时间
遇到一个神奇的bug,用户退出时,上次登录时间会变成退出时的时间. 于是开始跟踪,发现Laravel在退出时,会做一次脏检查,这时会更新rember_token,这时就会有update操作如下. 而粗 ...
- python parse xml using DOM
demo: import xml.dom.minidom dom=xml.dom.minidom.parse('sample.xml')root = dom.documentElementcc=dom ...