python3 hashlib库sha256、pbkdf2_hmac、blake2b基本用法

2023-11-19

hashlib.sha256:

import hashlib

x = hashlib.sha256()
x.update(b"asd")
print("x_1 = " + x.hexdigest())

x = hashlib.sha256()
x.update("asd".encode())
print("x_2 = " + x.hexdigest())

x = hashlib.sha256()
x.update(b"a")
x.update(b"s")
x.update(b"d")
print("x_3 = " + x.hexdigest())

y = hashlib.sha256(b"asd").hexdigest()
print("y_1 = " + y)

z = hashlib.new("sha256")
z.update(b"asd")
print("z_1 = " + z.hexdigest())

运行结果:

x_1 = 688787d8ff144c502c7f5cffaafe2cc588d86079f9de88304c26b0cb99ce91c6
x_2 = 688787d8ff144c502c7f5cffaafe2cc588d86079f9de88304c26b0cb99ce91c6
x_3 = 688787d8ff144c502c7f5cffaafe2cc588d86079f9de88304c26b0cb99ce91c6
y_1 = 688787d8ff144c502c7f5cffaafe2cc588d86079f9de88304c26b0cb99ce91c6
z_1 = 688787d8ff144c502c7f5cffaafe2cc588d86079f9de88304c26b0cb99ce91c6



hashlib.pbkdf2_hmac加盐:

import hashlib
import binascii
import os

x = hashlib.pbkdf2_hmac("sha256", b"asd", b"", 1)
print("x_1 = " + binascii.hexlify(x).decode())

x = hashlib.pbkdf2_hmac("sha256", b"asd", b"", 1)   # 相同盐值
print("x_2 = " + binascii.hexlify(x).decode())

x = hashlib.pbkdf2_hmac("sha256", b"asd", b"", 10)  # 相同盐值,不同迭代次数
print("x_3 = " + binascii.hexlify(x).decode())

x = hashlib.pbkdf2_hmac("sha256", b"asd", b"dsa", 1)   # 不同盐值,相同迭代次数
print("x_4 = " + binascii.hexlify(x).decode())

y = hashlib.pbkdf2_hmac("sha256", b"asd", os.urandom(16), 1)    # 随机生成盐值
print("y_1 = " + binascii.hexlify(y).decode())

运行结果:

x_1 = b930d78b395bde9a074f5f762bc7c64aa85a05cd74dbf22d25c2357c6a59f883
x_2 = b930d78b395bde9a074f5f762bc7c64aa85a05cd74dbf22d25c2357c6a59f883
x_3 = 96c27cfb86a1b4a9e9c9e8ae1f8c3c3188c1c23ff268e410a9a6f7bca3a35f67
x_4 = f9653d10a4cc5b956fb030b1b420f8fdf145adfdd28650e007dd912b8e2a6c5a
y_1 = 338208350ccb7c6c99c582f83fda351801f79cd62def6799456a06da6598f567



hashlib.blake2b:

import hashlib
import hmac
import cryptography.fernet

x = hashlib.blake2b()
x.update(b"asd")
print("x = " + x.hexdigest())
print("true" if hmac.compare_digest(x.hexdigest(), hashlib.blake2b(b"asd").hexdigest()) else "false")

y = hashlib.blake2b(digest_size=5, key=b"", salt=b"", person=b"") # 键控哈希、加盐、个性化
y.update(b"asd")
print("y = " + y.hexdigest())
print("true" if hmac.compare_digest(y.hexdigest(), hashlib.blake2b(b"asd", digest_size=5, key=b"", salt=b"", person=b"").hexdigest()) else "false")

a = cryptography.fernet.Fernet.generate_key()   # 自动生成密钥
b = cryptography.fernet.Fernet(a)
c = b.encrypt("asd".encode())   # 使用生成的密钥加密
print(c)
d = b.decrypt(c)    # 使用生成的密钥解密
print(d.decode())

z = hmac.new(a, digestmod=hashlib.blake2b)  # 使用本地密钥进行加密
z.update(b"asd")
print("z = " + z.hexdigest())
print("true" if hmac.compare_digest(z.hexdigest(), hmac.new(key=a, msg=b"asd", digestmod=hashlib.blake2b).hexdigest()) else "false")

运行结果:

x = e4139471a1800a05b5e02b56669f025d01e33c5655153a4faa29f694f7849c63f97577fcc3e397d1138cf4640e0c2053e74a7af646598310d076dc6f15d1af50
true
y = 940ba28546
true
b'gAAAAABbM9urQSo8QilnHGDUEVL-CCFOkkW4yDOc10yoAp4B-tUabQZw6y8BNbATty8oC-Om555xF8Xr4rQxRDgYkIZ67u9lsQ=='
asd
z = cc18cfb36af92c64bf9a55114e22d178a05a6f10bfe9d1bf7067acb108146edd1ea595cd46d8fbdda58a334d6444a22d404774162f7d675a8ef59f70b983af4e
true

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3 hashlib库sha256、pbkdf2_hmac、blake2b基本用法 的相关文章

  • 隐私计算分类

    在大数据时代中 海量的数据的交叉计算和人工智能的发展为各行各业提供了更好的支持 但这些被使用的数据往往包含用户的隐私数据 或企业 机构的内部数据 这些数据由于数据安全和隐私的考虑 往往是不对外开发 例如政府数据由于政策保密性完全不能对外公布
  • 【2019.05.26】JS逆向——破解 企名片 参数(encrypt_data)爬虫 超级详细

    参考这个博客 作者写的很流畅 一看就是个大佬 要向大佬学习 企名片地址 要获取图中数据 分析请求 根据大佬博客的点拨 我们可以知道这个网站的数据都在这个参数当中 要获取这些数据 我们需要这个网页是怎么把这一段参数解析的 解析参数 encry
  • 【2019.05】JS逆向——破解百度翻译参数(sign)爬虫 超级详细

    有时间了打算把有道 百度 Google翻译都搞一遍 填坑百度翻译 这篇与有道那篇操作基本一致 有可能写的没有那篇清楚 大家也可以观摩一下上一篇 2019 05 JS逆向 破解有道翻译爬虫参数 sign 一 分析请求参数 打开地址 https
  • Python3 获取本机所有IP地址

    版权声明 更多最新原创文章请访问 最新原创主页 更多最全原创文章请访问 更多原创主页 先上代码 coding utf 8 Time 2018 2 10 18 24 Author 蛇崽 Email 643435675 QQ com File
  • ECC椭圆曲线加解密原理详解(配图)

    ECC椭圆曲线加解密原理详解 配图 本文主要参照 ECC加密算法入门介绍及 ECC椭圆曲线详解 有具体实例 前言 椭圆曲线 ECC 加密原理跟RSA加解密原理比起来 可真是晦涩难懂 拜读了Kalafinaian的文章 ECC椭圆曲线详解 有
  • python 泛型函数--singledispatch的使用

    functools singledispatch 将一个函数转变为单一分派的泛型函数 用 singledispatch装饰一个函数 将定义一个泛型函数 注意 我们创建的函数获得分派的依据是第一个参数的类型 from functools im
  • 神经网络模型量化

    量化模型 Quantized Model 是一种模型加速 Model Acceleration 方法的总称 包括二值化网络 Binary Network 三值化网络 Ternary Network 深度压缩 Deep Compression
  • ERROR: No matching distribution found for Django 报错解决

    ERROR No matching distribution found for Django 报错解决 今天安装一个 python 依赖时 执行 pip install r requirements txt后 界面出现ERROR No m
  • Opencv-python3,处理rtsp流视频-----踩坑总结+VideoCapture.get()详解:

    最近项目在用opencv处理rtsp流相机 中间也踩了很多坑 这里写篇博客帮助那些可能会遇到相似问题的同胞 注 我这里同时用到了四个相机 1 电脑同时连接多个相机后 之后去打开rtsp相机时 初次打开特别耗时 甚至打开失败 在Win10上需
  • Python3之基本数据类型总结

    日期 2019年12月15日 作者 Commas 注释 学习就是为了忘记 总结一下python3的基本数据类型相关的知识 如果您想了解更多有关Python的知识 那么请点 我的Python目录 文章目录 一 变量在内存中的存储 二 内置函数
  • 神经网络预测彩票数据

    一 人工智能深度学习神经网络在双色球彩票中的应用研究 一 https www cnblogs com zdz8207 p DeepLearning NeuralNetworks html 二 百度AI http ai baidu com p
  • python3 sys.argv.py

    模块 01 sys argv py 功能 获取命令行参数 参考 https www runoob com python3 python3 command line arguments html 命令行 python 01 sys argv
  • python 头条 sign 参数 此篇针对实时列表 请使用73版本的谷歌浏览器

    1 首先谷歌浏览器打开今日头条F12调试找到sources 以旅游模块为例以此类推都一样 网站如https www toutiao com ch news travel 2 ctrl shift f全局搜索 window byted acr
  • python3生成中文词云图

    usr bin python3 coding utf 8 coding utf 8 导入wordcloud模块 from wordcloud import WordCloud 中文分词库 pip install jieba import j
  • Python3之爬虫----retrying模块的使用和处理cookie相关的请求

    1 1 设使用超时参数 requests get url headers headers timeout 3 设置超时参数 若url在三秒内未得到响应 报错 1 2 retrying模块的使用 第三方模块 from retrying imp
  • Python 一篇入门

    目录 Python 的简介与特点 Python支持多种编程风格 解释运行 跨平台 可扩展强 可嵌入 丰富的库 Python版本选择 Python开发环境搭建 认识Python解释器 快速入门 变量和赋值 动态类型 变量命名规则 认识 数字
  • yum出现Error downloading packages错误

    yum出现Error downloading packages错误 错误表现方式 yum可以list 可以clean cache 但是无法安装 错误提示 Downloading packages Error downloading pack
  • python3 练习题100例 (十二)

    题目十二 打印出所有的 水仙花数 所谓 水仙花数 是指一个三位数 其各位数字立方和等于该数本身 例如 153是一个 水仙花数 因为153 1的三次方 5的三次方 3的三次方 usr bin env python3 coding utf 8
  • Python(4)list和tuple(类似js里的数组)

    6 list list其实就是js里的数组 放置在中括号里 用逗号分隔 就是数组的元素 例如 foo 1 2 3 print foo 1 2 3 len 访问list的长度 foo 1 2 3 print len foo 3 list n
  • python3 hashlib库sha256、pbkdf2_hmac、blake2b基本用法

    hashlib sha256 import hashlib x hashlib sha256 x update b asd print x 1 x hexdigest x hashlib sha256 x update asd encode

随机推荐

  • 【MATLAB第43期】基于MATLAB的BO-NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型

    MATLAB第43期 基于MATLAB的BO NAR贝叶斯优化动态神经网络NAR时间序列股票预测模型 一 效果展示 二 模型介绍 1 数据情况 一列数据 499个值 ratio 0 9 训练集比例 MaxEpochs 600 最大训练次数
  • Fatal error in gc GetThreadContext failed bug 异常。

    Fatal error in gc GetThreadContext failed PC unity5 3 4 c exe windows 废话不说 网上各种回答是杀毒软件关闭 但是需求不允许关闭其他 只能从代码出发 发现 开个一个线程 这
  • 13 openEuler用户组管理

    文章目录 13 1 创建用户组 13 1 1 groupadd命令 13 1 2 用户组信息文件 13 1 3 创建用户组实例 13 2 修改用户组 13 2 1 修改GID 13 2 2 修改用户组名 13 3 删除用户组 13 4 将用
  • DSS部署-11、Spark on Yarn部署

    文章目录 第七部分 Spark on Yarn部署 相关配置 操作记录如下 spark sql e show databases 第七部分 Spark on Yarn部署 相关配置 tar xf spark 2 3 2 bin hadoop
  • 数学表达式: 从恐惧到单挑 (7. min 与 argmin)

    7 min 与 argmin min 和 argmin 在机器学习中常用 max 和 argmax 同理 7 1 min min 是 minimal 的缩写 用于获得集合中的最小值 如 min 3 1
  • 螺旋矩阵,python实现

    螺旋矩阵问题 给定一个n阶正方形矩阵 生成一个包含 1 到 n2 所有元素 且元素按顺时针顺序螺旋排列的正方形矩阵 力扣原题 这个问题不涉及什么算法问题 考察的就是个人对于代码的掌控和抽象 螺旋矩阵长的是这个样子 处理这个问题就得提到二分法
  • 各操作系统下安装docker

    1 查看服务器软硬件信息 1 1 判断操作系统类型 操作系统 基于发行版 统信UOS Debian 银河麒麟 StartOS Debian openEuler CentOS 优麒麟 Ubuntu Kylin Ubuntu 中标麒麟 Kyli
  • Java算法题:两数之和

    LeetCode原题 给你一个下标从 1 开始的整数数组 numbers 该数组已按 非递减顺序排列 请你从数组中找出满足相加之和等于目标数 target 的两个数 示例 1 输入 numbers 2 7 11 15 target 9 输出
  • STM32F103VG使用RTT实现发送DMX512调光数据

    DMX512调光协议和DALI一样属于数字调光协议 一个完整的DMX512数据包格式 1break 1mab 1startcode 512个调光数据 DMX512发送是基于485串口的基础上实现的特殊的数据协议 使用RTT需要把串口打开并且
  • 大话数据结构:线性表(顺序存储结构)

    线性表 零个或多个数据元素的有限序列 直接前驱元素 直接后继元素 线性表的长度 线性表元素的个数n 线性表的抽象数据类型 ADT线性表 list Data 线性表的数据对象集合为 a1 a2 an 每个元素的类型均为Datatype 其中
  • 微软服务器的主要功能,数据库服务器主要功能

    数据库服务器主要功能 内容精选 换一换 HANA全称High performanceAnalyticAppliance是由SAP开发的基于内存的面向行 列存储的关系型数据库管理系统 其作为数据库服务器的主要功能是根据应用程序的要求存储和检索
  • jdk17下载

    官网下载 https download oracle com java 17 latest jdk 17 windows x64 bin zip
  • 也想做一个绝地求生版的汽车控制移动,进来瞧瞧?(干货满满)

    控制车子移动 效果图附上 1 首先4个车轮复制一遍为车轮2备用 2 给车轮2全部添加wheel collider 只剩下车轮碰撞器和transform组件 3 给原版4个车轮添加脚本wheel 变量共有 面板赋值 依次添加车轮2里面的车轮c
  • c#图解教程和c#高级编程电子书链接

    链接 https pan baidu com s 1y TM08JvyBh8kQ0v7uT5hg 提取码 b0cq
  • Python的多维空数组赋值

    Python里面的list tuple默认都是一维的 创建二维数组或者多维数组也是比较简单 可以这样 list1 1 2 list1 append 3 4 可以这样 list2 1 2 3 4 还可以这样 list3 1 2 list3 i
  • android界面监控,防劫持

    1 首先要对自己应用的activity建立一个白名单 2 权限
  • http协议从客户端提交数据给服务器并返回数据

    老罗视频学习 本例从客户端提交数据给服务器 服务器接收到数据之后 看是否匹配 匹配返回字符串 login is success 失败返回 login is error 一 客户端 初始化url地址 private static String
  • Git如何比较不同分支的差异

    前两天 良许在做集成的时候碰到了一件闹心事 事情是这样的 良许的一位同事不小心把一个错误的 dev 分支 merge 到了 master 分支上 导致了良许编译不通过 于是 我们需要将版本回退到 merge 之前的状态 如果是下面这个状态
  • 电子设计竞赛(三)-SPWM与PID

    1 SPWM波调制技术 逆变电路的控制方式主要是采用SPWM 正弦脉宽调制技术 IR2104控制开关管的通断来实现正弦调制 SPWM的基本思路是将一个正弦波按等宽间距分成N等份 对于每一个波形以一个等面积的脉冲来对应 使脉冲的中点与相应正弦
  • python3 hashlib库sha256、pbkdf2_hmac、blake2b基本用法

    hashlib sha256 import hashlib x hashlib sha256 x update b asd print x 1 x hexdigest x hashlib sha256 x update asd encode