📜  加密和解密python(1)

📅  最后修改于: 2023-12-03 15:36:58.957000             🧑  作者: Mango

加密和解密Python

介绍

在日常生活和工作中,经常会涉及到对数据的加密和解密。Python是一种简单易学但功能强大的编程语言,在处理加密和解密方面也有诸多优秀的库和模块可供使用。本文将向您介绍几种常用的加密和解密的方法和模块。

加密方法
Base64加密

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加密

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加密

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加密的数据可以使用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解密

MD5是单向加密算法,无法通过解密还原原始数据。

DES解密

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)