Python常用base64 md5 aes des crc32加密解密方法汇总

yizhihongxing

Python常用加密解密方法汇总

在Python中,常用的加密解密方法有许多,比如base64、md5、aes、des、crc32等等。本文将对这些方法进行详细的讲解,并提供一些使用示例。

base64加密解密

base64是一种将二进制数据编码为ASCII字符的方法,通常用于在HTTP协议、电子邮件、XML等场景下传输较长的标识信息,以便于处理和传输。Python中内置了base64模块,可以方便地进行base64的编码和解码。

编码

import base64

data = b'Hello, World!' # 需要编码的二进制数据
encoded_data = base64.b64encode(data)
print(encoded_data) # 输出:b'SGVsbG8sIFdvcmxkIQ=='

解码

import base64

encoded_data = b'SGVsbG8sIFdvcmxkIQ==' # 需要解码的base64编码数据
decoded_data = base64.b64decode(encoded_data)
print(decoded_data) # 输出:b'Hello, World!'

MD5加密

MD5是一种常用的哈希算法,它可以将任意长度的消息压缩为一个128位的消息摘要。Python中内置了hashlib模块,可以方便地进行MD5的计算。

计算MD5值

import hashlib

data = b'Hello, World!' # 需要计算MD5值的二进制数据
md5 = hashlib.md5()
md5.update(data)
print(md5.hexdigest()) # 输出:'86fb269d190d2c85f6e0468ceca42a20'

AES加密解密

AES是一种高级加密标准,是一种对称密钥加密算法。Python中可以使用pycryptodome模块进行AES的加密和解密。

加密

from Crypto.Cipher import AES

key = b'1234567890123456' # 密钥,需要16字节的长度
iv = b'1234567890123456' # 初始化向量,需要16字节的长度
data = b'Hello, World!' # 需要加密的二进制数据
cipher = AES.new(key, AES.MODE_CBC, iv)
encrypted_data = cipher.encrypt(data)
print(encrypted_data) # 输出:b'\xc1\xba\xf4ID\t\xf8\xa6\x1b\x0b\xb1\x9f3\xd6m'

解密

from Crypto.Cipher import AES

key = b'1234567890123456' # 密钥,需要16字节的长度
iv = b'1234567890123456' # 初始化向量,需要16字节的长度
encrypted_data = b'\xc1\xba\xf4ID\t\xf8\xa6\x1b\x0b\xb1\x9f3\xd6m' # 需要解密的二进制数据
cipher = AES.new(key, AES.MODE_CBC, iv)
decrypted_data = cipher.decrypt(encrypted_data)
print(decrypted_data) # 输出:b'Hello, World!'

DES加密解密

DES是一种对称密钥加密算法,使用方法与AES类似。Python中可以使用pycryptodome模块进行DES的加密和解密。

加密

from Crypto.Cipher import DES

key = b'12345678' # 密钥,需要8字节的长度
iv = b'12345678' # 初始化向量,需要8字节的长度
data = b'Hello, World!' # 需要加密的二进制数据
cipher = DES.new(key, DES.MODE_CBC, iv)
encrypted_data = cipher.encrypt(data)
print(encrypted_data) # 输出:b'\x86\x7f\x1c(\x8c\x08I\xffiH\xcb@\xee'

解密

from Crypto.Cipher import DES

key = b'12345678' # 密钥,需要8字节的长度
iv = b'12345678' # 初始化向量,需要8字节的长度
encrypted_data = b'\x86\x7f\x1c(\x8c\x08I\xffiH\xcb@\xee' # 需要解密的二进制数据
cipher = DES.new(key, DES.MODE_CBC, iv)
decrypted_data = cipher.decrypt(encrypted_data)
print(decrypted_data) # 输出:b'Hello, World!'

crc32校验码

crc32是一种循环冗余校验码,主要用于数据传输错误的检测。Python中可以使用zlib模块进行crc32校验。

计算CRC32校验码

import zlib

data = b'Hello, World!' # 需要计算CRC32校验码的二进制数据
crc32 = zlib.crc32(data)
print(crc32) # 输出:2229579579

至此,本文对Python常用的base64、md5、aes、des、crc32加密解密方法进行了详细的介绍,并给出了使用示例。希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python常用base64 md5 aes des crc32加密解密方法汇总 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • python演示解答正则为什么是最强文本处理工具

    Python演示解答正则为什么是最强文本处理工具 正则表达式是一种强大的文本处理工具,可以用于各种文本处理,如数据清洗、文本分析、信息提取等。正则表达式的强大之处在于它可以通过一些简单的语法规则来描述复杂的文本模式,从而实现高效的文本处理。本攻略将详细讲解Python中正则表达式的应用,包括正则表达式的基本语法、常用函数和应用技巧。 正则表达式的基本语法 正…

    python 2023年5月14日
    00
  • 字典是在 Python 3.6+ 中排序的吗?

    【问题标题】:Are dictionaries ordered in Python 3.6+?字典是在 Python 3.6+ 中排序的吗? 【发布时间】:2023-04-05 21:31:01 【问题描述】: 字典在 Python 3.6 中排序(至少在 CPython 实现下)与以前的版本不同。这似乎是一个重大变化,但它只是documentation 中…

    Python开发 2023年4月6日
    00
  • Python 字典的使用详解及实例代码

    那我就来详细讲解一下Python字典的使用详解及实例代码。 Python字典的使用详解 1. 什么是字典 在Python中,字典是一种可变容器模型,且可存储任意类型对象。字典中的每个元素都是由一个键和一个值组成的键值对,键和值之间用冒号(:)隔开,整个字典用花括号({})括起来。 2. 字典的创建和访问 创建一个空字典和创建一个非空字典的方式如下: # 创建…

    python 2023年5月13日
    00
  • Python实现图像增强

    我将为您详细讲解“Python实现图像增强”的完整攻略。 1. 图像增强 图像增强是指对图像的特定操作或一系列操作,以获得更好的可视化效果,提高图像质量。常用的图像增强技术包括:亮度调整、对比度调整、直方图均衡化、模糊、锐化等。 2. Python实现图像增强 Python中有很多第三方库可以实现图像增强,本文将以Pillow库为例进行讲解。 2.1 安装P…

    python 2023年5月19日
    00
  • Python实现清理重复文件功能的示例代码

    下面我就来详细讲解一下“Python实现清理重复文件功能的示例代码”的完整攻略。 1. 核心思路 清理重复文件的核心思路是通过比对文件内容是否相同来判断文件是否重复,如果文件内容相同,则只保留其中一个文件,其他重复的文件都可以删除。 所以我们需要先将文件按照文件内容的 hash 值进行分组,每个分组中的文件 hash 值相同。然后在每个分组中将除第一个文件之…

    python 2023年6月5日
    00
  • 对Python3 解析html的几种操作方式小结

    在Python3中,可以使用多种方式解析HTML文档,包括正则表达式、BeautifulSoup、lxml等。本文将对Python3解析HTML的几种操作方式进行小结,包括两个示例。 正则表达式 正则表达式是一种用于匹配文本的工具。在Python3中,可以使用re模块解析HTML文档。使用正则表达式解析HTML文档的优点是速度快,缺点是代码难以维护。 以下是…

    python 2023年5月15日
    00
  • Python编码规范摆脱Python编码噩梦

    Python 编码规范摆脱 Python 编码噩梦 Python 是一门易读易写的编程语言,但是当你的项目变得越来越大,代码量越来越多的时候,一套严格的编码规范将变得尤为重要。在本文中,我们将介绍一些针对 Python 编码规范的最佳实践和技巧,帮助你编写清晰、易维护的 Python 代码。 为什么需要编码规范 当你和其他人共同开发一个项目时,共享代码成为一…

    python 2023年5月18日
    00
  • Python+Tkinter制作猜灯谜小游戏

    下面为您详细讲解“Python+Tkinter制作猜灯谜小游戏”的完整攻略。 首先,我们需要了解猜灯谜小游戏的基本规则。猜灯谜是指在一定时间内,根据出题者所给出的提示信息,猜出与之相对应的谜底的游戏。通常,谜底是一个诗句或成语,而提示信息会根据谜底的特点进行设置。在本次制作猜灯谜小游戏中,我们将使用Python编程语言和Tkinter图形用户界面库来实现。 …

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