python 实现aes加密
需要使用aes加密,记录一下
import base64 from Crypto.Cipher import AES AES_KEY = 'aw123zsc212s9ju0' # It must be 16, 24 or 32 bytes long (respectively for *AES-128*, *AES-192* or *AES-256*). def add_to_16(text: str) -> bytes: """ 不足16位的地方补全位数 :param text: 源字符串 :return: 补足字符串 """ b_text = text.encode('utf-8') # 计算需要补的为位数 if len(text) % 16: add = 16 - (len(b_text) % 16) else: add = 0 return b_text + (b'\0' * add) def encrypt_by_aes(text: str, key: str) -> str: """ 加密函数 :param text: 源字符串 :param key: 密钥 :return: 加密字符串 """ key = key.encode('utf-8') text = add_to_16(text) # 如果长度不够补足 16 位 cryptos = AES.new(key, AES.MODE_ECB) # 使用ECB模式 cipher_text = cryptos.encrypt(text) # 加密 return base64.standard_b64encode(cipher_text).decode('utf-8') # 将加密结果转为base64编码输出 def decrypt_by_aes(text: str, key: str): """ 解密函数 :param text: 加密字符串 :param key: 密钥 :return: 解密结果 """ key = key.encode('utf-8') text = text.encode('utf-8') text = base64.b64decode(text) # 先使用base64解码 cryptos = AES.new(key, AES.MODE_ECB) cipher_text = cryptos.decrypt(text) # 解密 return cipher_text.decode('utf-8').strip('\0') if __name__ == '__main__': source_str = 'hello' encrypt_str = encrypt_by_aes(source_str, AES_KEY) decrypt_str = decrypt_by_aes(encrypt_str, AES_KEY) print(encrypt_str) print(decrypt_str)
输出结果:
CNCNntzveSN8tZ8Y1PifWQ== hello
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!