大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
前言
AES加密的模式有很多种,下面来介绍ECB模式的加密解密
import base64
from Crypto.Cipher import AES
class AESECB:
def __init__(self, key):
self.key = key # 加密密钥
self.mode = AES.MODE_ECB # 设置为ECB模式
self.bs = 16 # block size
self.PADDING = lambda s: s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)
def encrypt(self, text):
generator = AES.new(self.key, self.mode) # ECB模式无需向量iv
crypt = generator.encrypt(self.PADDING(text).encode('utf-8'))
crypted_str = base64.b64encode(crypt).decode('utf-8')
return crypted_str
def decrypt(self, text):
generator = AES.new(self.key, self.mode) # ECB模式无需向量iv
decrpyt_bytes = base64.b64decode(text)
meg = generator.decrypt(decrpyt_bytes).decode('utf-8')
return meg[:-ord(meg[-1])]
if __name__ == '__main__':
aes = AESECB('1234567890abcdef')
print(aes.encrypt('111111'))
print(aes.decrypt('rfTzn9WjsDFbK262m0k4xg=='))
结果:
rfTzn9WjsDFbK262m0k4xg==
111111
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166053.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...