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

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中,数组可以通过list类型来实现。例如,下面的代码定义了一个由整数和字符串组成的数组: my_list = [1, 2, "He…

    python-answer 2023年3月25日
    00
  • Python反射和内置方法重写操作详解

    Python反射和内置方法重写操作详解 Python是一种动态语言,具有反射和内置方法重写等特性。反射是指在运行时动态地获取对象的信息和调用对象的方法,而内置方法重写是指在类中重写内置方法以改变其默认行为。本文将详细讲解Python反射和内置方法重写操作,并提供两个示例。 Python反射 Python反射是指在运行时动态地获取对象的信息和调用对象的方法。P…

    python 2023年5月15日
    00
  • Python实现的当前时间多加一天、一小时、一分钟操作示例

    Python实现时间加减操作 在Python中实现时间加减操作非常简单,我们只需要调用Python标准库中的datetime模块,即可完成各种时间的加减运算。 实现原理 在Python中,日期时间可以使用datetime类来表示。我们可以初始化一个datetime对象,然后使用timedelta对象来对其进行加减操作。 例如: import datetime…

    python 2023年6月2日
    00
  • JS正则表达式基本用法(经典全)

    下面是详细的攻略: JS正则表达式基本用法(经典全) 在JavaScript中,正则表达式是一种强大的工具,可以用于字符串匹配、替换、分割等操作。本文将介绍JS正则表达式的基本用法,并提供两个示例说明。 正则表达式基本语法 在JavaScript中,我们可以使用RegExp对象来创建正则表达式。正则表达式由模式和标志组成,模式是由字符和元字符组成的字符串,标…

    python 2023年5月14日
    00
  • Python离线安装PIL 模块的方法

    下面是详细讲解Python离线安装PIL模块的方法的完整攻略: 环境准备 首先需要下载PIL模块的安装包,可以从Pillow官方网站获取。下载地址:https://pypi.org/project/Pillow/#files 离线安装Python,建议使用Anaconda,因为在Anaconda中,可以通过conda这个软件包管理工具来进行离线安装。可在An…

    python 2023年5月14日
    00
  • Python中matplotlib中文乱码解决办法

    下面是关于“Python中matplotlib中文乱码解决办法”的完整攻略。 问题描述 在使用Matplotlib绘制图形时,中文字符出现了乱码,这是一个常见的问题。但是,这个问题的解决方法并不复杂,下面将为大家详细介绍。 解决方法 要解决这个问题,我们需要使用Matplotlib自带的rcParams属性来进行配置,具体步骤如下: 导入所需的库 impor…

    python 2023年5月20日
    00
  • Python计算IV值的示例讲解

    下面是关于“Python计算IV值的示例讲解”的完整攻略。 标题 什么是IV值 IV指隐私保护中常用的指标,即信息量。它既反应了数据的敏感程度,又反映了数据的稀缺性。通常情况下,IV值越大,预测目标变量的能力越高。 如何计算IV值 计算IV值的公式为:IV=∑(good%−bad%)×WOE,其中good表示好样本数,bad表示坏样本数,WOE表示分割后某一…

    python 2023年5月14日
    00
  • python中如何为不同的数据类型分配内存?

    【问题标题】:How does memory allocated for different datatype in python?python中如何为不同的数据类型分配内存? 【发布时间】:2023-04-02 13:19:01 【问题描述】: 我注意到,对于整数和字符串: a=1 ; b=1 c=’abc’ ; d=’abc’ print(id(a), …

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部