首页 > 编程语言 >Python3的AES加密和解密

Python3的AES加密和解密

时间:2023-02-25 14:01:23浏览次数:44  
标签:aes 加密 text AES 解密 key BS Python3


此加密和解密的秘钥的长度必须是16位、24位或者32位

import base64
import os
from Crypto.Cipher import AES

# AES key must be either 16, 24, or 32 bytes long
aes_key = "12345678901234567890123456789012"

# 加密
def aes_encrypt(data):
key=aes_key #加密时使用的key,只能是长度16,24和32的字符串
BS = AES.block_size
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
cipher = AES.new(key)
encrypted = cipher.encrypt(pad(data)) #aes加密
result = base64.b64encode(encrypted) #base64 encode
return result

# 解密
def aes_decrypt(data):
key=aes_key
unpad = lambda s : s[0:-s[-1]]
cipher = AES.new(key)
result2 = base64.b64decode(data)
decrypted = unpad(cipher.decrypt(result2))
return decrypted

encrypted_text = aes_encrypt("{'token':'123456', 'name':'Victor','age':1, 'gender':1, 'id':123, 'company':'injiajia.com'}")
print("加密输出:")
print(encrypted_text)

decrypted_text = aes_decrypt(encrypted_text)
print("解密输出:")
print(decrypted_text)

输出

"""
加密输出:
b'S4t7N9JtmCExLVW+k1oe0qMIvlSUjlXusCNAcrqTa6erPXZlZ6cDeFpoPrtWeyy0E2eG+d9cAm/XpVF+Cx8dDt8kbY8IXDXZ5ksdkK/nVvatNBrvzD4HhcJHPtwDrreR'

解密输出:
b"{'token':'123456', 'name':'Victor','age':1, 'gender':1, 'id':123, 'company':'injiajia.com'}"
"""


标签:aes,加密,text,AES,解密,key,BS,Python3
From: https://blog.51cto.com/u_14062833/6085442

相关文章

  • python2代码转python3
    安装python337的参考:D:\Python3.5\Tools\scripts找到2to3.py文件执行命令转换单个文件或者目录D:\dev\python37\Tools\scripts>python2to3.py-wD:\dev\python37\To......
  • win7安装python3
    win7安装python3python官网显示python3.9以上已不支持win7,所以找一下python3.8NotethatPython3.9+cannotbeusedonWindows7orearlier.python3.8提供安装包的......
  • Mac 创建Python3虚拟环境
    Mac创建Python3虚拟环境1、安装virtualenvpip3installvirtualenv安装virtualenvwrapperpip3installvirtualenvwrapper创建所以.virtualenvs的隐藏文件夹存......
  • Python3-2023-测试开发-28- Python 代码如何打包成.exe文件(Pyinstaller包)
    前言Python可将.py文件打包成.exe文件在windows系统上运行 环境准备(Pyinstaller)1、首先安装pywin32包,如果没有此包,后面打包会报错pip3installpywin32--index-ur......
  • 玫瑰花变蚊子血,自动化无痕浏览器对比测试,新贵PlayWright Vs 老牌Selenium,基于Pytho
    也许每一个男子全都有过这样的两个女人,至少两个。娶了红玫瑰,久而久之,红的变了墙上的一抹蚊子血,白的还是床前明月光;娶了白玫瑰,白的便是衣服上沾的一粒饭黏子,红的却是心口上......
  • 快速安装jupyter for Python3.8版本(Windows7下的安装)
        快速安装jupyter forPython3.8版本(Windows7下的安装)1.环境的准备,Windows7旗舰版,正常安装完毕,Python3.8.1正常安装完毕,pycharm任意的版本(pycharm主要是自带虚......
  • JAVA 【SM2】加密解密
    JAVA【SM2】加密解密前言:最近项目中必须用到SM2的加密解密引入的Maven依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId>......
  • 解密Prompt系列2. 冻结Prompt微调LM: T5 & PET & LM-BFF
    这一章我们介绍固定prompt微调LM的相关模型,他们的特点都是针对不同的下游任务设计不同的prompt模板,在微调过程中固定模板对预训练模型进行微调。以下按时间顺序介绍,支持任......
  • 基于matlab的AES加解密算法仿真
    1.算法描述AES算法在对明文加密的时候,并不是把整个明文一股脑的加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128bit。这些明文块经过AES加密器复......
  • 基于matlab的AES加解密算法仿真
    1.算法描述        AES算法在对明文加密的时候,并不是把整个明文一股脑的加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128bit。这些明文......