第十章、hashlib模块和hmac模块

一、hashlib模块

hash是一种算法,接收传入的内容,经过运算得到的一串hash值

hash的特点:

  1. 具有唯一性
  2. 安全性,可以用于保存非明文密码
  3. 无论传入的什么内容,返回的hash值长度都是固定的
import hashlib
m=hashlib.md5() #创建了hash对象
print(type(m)) #<class '_hashlib.HASH'>
m.update("hello".encode('utf8'))#必须写编码格式否则报错
print(m.hexdigest()) #得到hash值
#5d41402abc4b2a76b9719d911017c592
m.update("hel".encode('utf8'))
m.update("lo".encode('utf8'))
print(m.hexdigest())
#5d41402abc4b2a76b9719d911017c592
#唯一性

二、hash模块

hmac模块内部对我们创建key和内容做过某种处理后再加密。

和hashlib模块类似,hash模块具有加盐的功能,保证hmac最终结果一致,必须要hmac.new括号内指定的初始key一样

也具有唯一性

import hmac
h1=hmac.new(b"hash")#创建了hmac对象h1,加盐(”hash“这个字符串)
#注意hmac模块只接受二进制数据的加密
print(type(h1)) #<class 'hmac.HMAC'> h1.update(b"hello")
print(h1.hexdigest())
#bea9d9de0f3dc7706393020b00404324
h1.update(b"hel")
h1.update(b"lo")
print(h1.hexdigest())
#bea9d9de0f3dc7706393020b00404324

第十章、hashlib模块和hmac模块的更多相关文章

  1. 模块讲解---time模块,datetime模块,random模块,hashlib模块和hmac模块,typing模块,requests模块,re模块

    目录 1. 包 2. time模块   1. 优先掌握 2. 了解 3. datetime模块   1. 优先掌握 4. random模块   1. 优先掌握   2. 了解 5. hashlib模块 ...

  2. hashlib模块和hmac模块

    hashlib模块和hmac模块 hashlib模块 一.导入方式 import hashlib 二.作用 无论你丢什么字符串,他都会返回一串 固定长度的字符串 三.模块功能 3.1 经常使用 imp ...

  3. Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)

    本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...

  4. Python3 hashlib模块和hmac 模块(加密)

    hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512等常用算法 MD5加密 ...

  5. Python标准库之hashlib模块与hmac模块

    hashlib模块用于加密相关的操作.在Python 3.x里代替了md5模块和sha模块,主要提供 SHA1.SHA224.SHA256.SHA384.SHA512 .MD5 算法.如果包含中文字符 ...

  6. SocketServer模块,hmac模块验证client合法性

    hmac模块: 1.模块初识: import hmac # h = hmac.new() #括号里要给它连个bytes类型,一个是自定义的secret_key,一个是你想进行加密的bytes # 密文 ...

  7. python hashlib、hmac模块

    一.hashlib模块 import hashlib m = hashlib.md5() m.update(b"Hello") print(m.hexdigest()) m.upd ...

  8. Python hashlib&hmac 模块

    用于加密相关的操作,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 hashlib模块示例: import hashlib m = hashlib. ...

  9. python 加密 hashlib与hmac模块

    https://www.jb51.net/article/128911.htm hashlib模块简介: hashlib模块为不同的安全哈希/安全散列(Secure Hash Algorithm)和 ...

随机推荐

  1. Linux 查看 MySQL的版本信息

    Linux 查看 MySQL的版本信息 如何查看某台 Linux 主机上的 安装的 MySQL版本信息? 使用如下命令,查看 MySQL的版本信息: mysql -V 或者 mysql --versi ...

  2. 改进后的socket轮子,欢迎挑战

    运行环境.net core2.1 下载地址

  3. memcached-slab内存管理

    一.Memcache内存分配机制 关于这个机制网上有很多解释的,我个人的总结如下. Page为内存分配的最小单位. Memcached 的内存分配以page为单位,默认情况下一个page是1M,可以通 ...

  4. Servlet(2):Requset/Response Encoding and Filter

    Requset/Response Encoding 表单提交分GET和POST,接下来分开讨论. (1)GET/URL提交的数据 在 Tomcat中,默认情况下使用"URIEncoding& ...

  5. svn本地文件颜色详解

    1.红色感叹号表示这个文件从服务器上下载下来以后,在本地被修改过.这时执行提交操作就可以了.2.黄色感叹号表示这个文件在提交的时候发现存在冲突,也就是说有别人在你提交之前对这个文件的同一个版本进行了修 ...

  6. 文件上传and富文本页面

    文件上传功能: 1.首先在index.jsp的界面上初始化一个表单. <body> <form enctype="multipart/form-data" act ...

  7. 《精通并发与Netty》学习笔记(05 - Google Protobuf与Netty的结合)

    protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等.其特点是不限语言.不限平台.扩展性强 Netty也提供了对Protobuf的天然支持,我们今天 ...

  8. prometheus 的promsql的经典例子 安装grafana

    0.好的参考文档 https://www.cnblogs.com/longcnblogs/p/9620733.html 1.多维度数据 2.Prometheus的全局监控指标 只需要定义一个全局的指标 ...

  9. Linux三剑客之sed深度实践讲解(上)

    sed sed 是Stream Editor(流编辑器)缩写,是操 作过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行. 2.增删改查 2.1 增 a 追加文本到指定行后 i 插入文本到指 ...

  10. 2019牛客暑期多校训练营(第六场)-D Move

    题目链接:https://ac.nowcoder.com/acm/contest/886/D 题意:给n个物品,每个物品有一个体积值,K个箱子,问箱子的最小体积为多少可将物品全部装下. 思路:比赛时一 ...