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

yizhihongxing

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

简介

Python内置模块hashlibhmacuuid是常用的密码学和唯一标识符相关的模块。本文将分别介绍它们的用法。

hashlib

hashlib模块提供了多种编码算法,包括MD5、SHA1、SHA224、SHA256、SHA384、SHA512等。可以用于加密密码、生成消息摘要等。

示例1:生成MD5消息摘要

import hashlib

msg = 'Hello, world!'
md5 = hashlib.md5()
md5.update(msg.encode('utf-8'))
digest = md5.hexdigest()

print('msg:', msg)
print('md5 digest:', digest)

输出结果:

msg: Hello, world!
md5 digest: b94d27b9934d3e08a52e52d7da7dabfa

示例2:生成SHA256消息摘要

import hashlib

msg = 'Hello, world!'
sha256 = hashlib.sha256()
sha256.update(msg.encode('utf-8'))
digest = sha256.hexdigest()

print('msg:', msg)
print('sha256 digest:', digest)

输出结果:

msg: Hello, world!
sha256 digest: 09a4e8f1d76bdbe35a3f3e590bfeb5cf37b2134dda38a750493fbd6b8c0580e6

hmac

hmac模块提供了基于哈希算法的消息认证码,可以用于防止网络中的消息被篡改、伪造、重放攻击等。

示例3:使用HMAC-SHA256进行消息认证

import hmac

key = b'secret_key'
msg = b'Hello, world!'
hmac_sha256 = hmac.new(key, msg, digestmod='sha256')

print('msg:', msg.decode('utf-8'))
print('hmac_sha256:', hmac_sha256.hexdigest())

输出结果:

msg: Hello, world!
hmac_sha256: b099fe15423c0f08e6aae8ba0fa9dbdbfbcf52335e00d1aa31703ceae5e5b03f

uuid

uuid模块提供了生成唯一标识符的方法,可以用于标识数据、车辆、设备等实体。

示例4:生成UUID

import uuid

unique_id = uuid.uuid4()

print('unique_id:', unique_id)

输出结果:

unique_id: 098a27b1-0864-4c52-9fca-a146060a66ab

总结

hashlibhmacuuid模块是处理密码学和唯一标识符相关的常用模块,可以在实际开发中使用它们保证数据安全性和唯一性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python内置模块hashlib、hmac与uuid用法分析 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Python中pip更新和三方插件安装说明

    Python中pip更新和三方插件安装说明 pip更新 pip是Python中最常用的包管理工具,用于安装、卸载、更新和管理第三方库。要想使用pip更新,我们需要打开命令行或终端,并输入以下命令: pip install –upgrade pip 这个命令会下载并安装最新版本的pip管理工具,同时会将原本的pip升级至最新版本。在终端中输入pip –ve…

    python 2023年5月14日
    00
  • Python打印特殊符号及对应编码解析

    在Python中,可以使用Unicode编码来打印特殊符号。以下是Python打印特殊符号及对应编码解析的详细攻略: 打印Unicode编码 要打印Unicode编码,可以使用\u加上4位十六进制数的形式。以下是打印Unicode编码的示例: print(‘\u2605’) 在上面的示例中,使用\u加上4位十六进制数的形式打印Unicode编码\u2605,…

    python 2023年5月14日
    00
  • python超详细实现字体反爬流程

    首先我们需要了解字体反爬的原理:通过在页面中加载自定义字体文件,然后在CSS样式中通过Unicode数值来替换文本内容,从而混淆文本信息,防止爬虫直接获取页面信息。因此,我们需要解决的是如何准确地将Unicode数值转换成正确的文本信息。 下面是python超详细实现字体反爬流程的攻略: 1. 获取页面字体文件 在爬取页面之前,我们需要先获取页面字体文件,通…

    python 2023年5月20日
    00
  • Python数据预处理常用的5个技巧

    绝大多数机器学习任务需要对数据进行预处理,以使得其适合下一步的分析。本文介绍5个Python数据预处理常用的技巧。 技巧1:数据清洗 数据清洗是任何机器学习任务中最重要且最困难的任务之一。这个步骤需要去掉含有缺失数据的行或列,并将文本或分类数据转换为数值数据。 下面是一个对带有缺失值的数据进行处理的示例: import pandas as pd import…

    python 2023年6月3日
    00
  • Python 常用模块threading和Thread模块之线程池

    线程池是线程的一个集合,它可以在限定数量的线程中,重复利用这些线程来处理多个任务,从而实现线程池的功能。 Python中的threading库提供了ThreadPoolExecutor类,它提供了很多线程池操作方法,让开发者可以在多线程编程中更加便捷地使用线程池。 ThreadPoolExecutor ThreadPoolExecutor类是一个线程池管理器…

    python 2023年5月19日
    00
  • 如何使用Python调整图像大小

    以下是如何使用Python调整图像大小的完整攻略。 1. 安装必要的库 首先,我们需要安装两个Python库:Pillow(PIL)和OpenCV。Pillow是Python Imaging Library的一个分支,提供了丰富的图像处理功能,而OpenCV是广泛使用的计算机视觉库。在命令行中输入以下代码可以安装这两个库: pip install Pillo…

    python 2023年5月19日
    00
  • 基于Python实现有趣的象棋游戏

    基于Python实现有趣的象棋游戏攻略 总体思路 本篇攻略将介绍如何使用Python实现一个简单的象棋游戏。该项目使用Python面向对象的编程思想实现,玩家可通过终端进行游戏。 实现思路分为三个部分:1. 声明象棋棋子,包括所在位置、是否死亡、颜色和种类等属性;2. 定义象棋棋盘,包括棋子位置、走棋规则等;3. 控制台交互,将棋子和棋盘展现给玩家,并实现下…

    python 2023年6月13日
    00
  • python 字符串常用方法汇总详解

    Python 字符串常用方法汇总详解 本文将介绍 Python 中常用的字符串方法,包括字符串拼接、切割、替换、查找等操作。帮助读者更加熟练地操作字符串,提高编程效率。 字符串的基本操作 字符串初始化 字符串可以用单引号或双引号来初始化: str1 = ‘hello’ str2 = "world" 字符串拼接 字符串拼接可以通过 + 号或…

    python 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部