📅  最后修改于: 2023-12-03 15:36:58.957000             🧑  作者: Mango
在日常生活和工作中,经常会涉及到对数据的加密和解密。Python是一种简单易学但功能强大的编程语言,在处理加密和解密方面也有诸多优秀的库和模块可供使用。本文将向您介绍几种常用的加密和解密的方法和模块。
Base64是一种以64个字符来表示任意二进制数据的方法。Base64加密依靠Base64编码工具和算法,将原始二进制数据编码成易于处理的64个字符,包括数学运算符和英文字母大小写空格等字符,并将这些字符传输到目标系统。Python标准库中的base64模块提供了Base64加密和解密函数,基本使用方法如下:
import base64
def base64_encrypt(data):
"""
Base64加密
:param data: 待加密的数据
:return: 加密后的数据
"""
return base64.b64encode(data.encode("utf-8")).decode("utf-8")
def base64_decrypt(data):
"""
Base64解密
:param data: 待解密的数据
:return: 解密后的数据
"""
return base64.b64decode(data.encode("utf-8")).decode("utf-8")
MD5是一种常用的摘要算法,可以将任意长度的字符串“压缩”成一个128位的字符串,是单向加密算法。Python标准库中的hashlib模块提供了MD5加密函数,基本使用方法如下:
import hashlib
def md5_encrypt(data):
"""
MD5加密
:param data: 待加密的数据
:return: 加密后的数据
"""
m = hashlib.md5()
m.update(data.encode("utf-8"))
return m.hexdigest()
DES是数据加密标准,是一种对称性密码体制,加密和解密使用同一套密钥,其中密钥长度为56位(8个字节)。Python中可以使用pyDes库来进行DES加密和解密,基本使用方法如下:
import pyDes
def des_encrypt(data, key):
"""
DES加密
:param data: 待加密的数据
:param key: 密钥
:return: 加密后的数据
"""
k = pyDes.des(key, pyDes.ECB)
return k.encrypt(data)
def des_decrypt(data, key):
"""
DES解密
:param data: 待解密的数据
:param key: 密钥
:return: 解密后的数据
"""
k = pyDes.des(key, pyDes.ECB, pad=None)
return k.decrypt(data)
Base64加密的数据可以使用Base64解密来还原原始数据。Python标准库中的base64模块提供了Base64解密函数,基本使用方法如下:
import base64
def base64_encrypt(data):
"""
Base64加密
:param data: 待加密的数据
:return: 加密后的数据
"""
return base64.b64encode(data.encode("utf-8")).decode("utf-8")
def base64_decrypt(data):
"""
Base64解密
:param data: 待解密的数据
:return: 解密后的数据
"""
return base64.b64decode(data.encode("utf-8")).decode("utf-8")
MD5是单向加密算法,无法通过解密还原原始数据。
DES算法使用的是对称加密,加密和解密使用同一套密钥。Python中可以使用pyDes库来进行DES加密和解密,基本使用方法如下:
import pyDes
def des_encrypt(data, key):
"""
DES加密
:param data: 待加密的数据
:param key: 密钥
:return: 加密后的数据
"""
k = pyDes.des(key, pyDes.ECB)
return k.encrypt(data)
def des_decrypt(data, key):
"""
DES解密
:param data: 待解密的数据
:param key: 密钥
:return: 解密后的数据
"""
k = pyDes.des(key, pyDes.ECB, pad=None)
return k.decrypt(data)