mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-08-17 21:25:47 +02:00
94 lines
3.0 KiB
Python
94 lines
3.0 KiB
Python
# coding: utf-8
|
|
# | Python AES
|
|
# +--------------------------------------------------------------------
|
|
|
|
from Crypto.Cipher import AES
|
|
import base64,sys
|
|
class aescrypt_py3():
|
|
def __init__(self,key,model = 'ECB',iv = None,encode_='utf-8'):
|
|
self.encode_ = encode_
|
|
self.model = {'ECB':AES.MODE_ECB,'CBC':AES.MODE_CBC}[model]
|
|
self.key = self.add_16(key)
|
|
if model == 'ECB':
|
|
self.aes = AES.new(self.key,self.model)
|
|
elif model == 'CBC':
|
|
self.aes = AES.new(self.key,self.model,iv)
|
|
|
|
def add_16(self,par):
|
|
par = par.encode(self.encode_)
|
|
while len(par) % 16 != 0:
|
|
par += b'\x00'
|
|
return par
|
|
|
|
def aesencrypt(self,text):
|
|
text = self.add_16(text)
|
|
self.encrypt_text = self.aes.encrypt(text)
|
|
return base64.encodebytes(self.encrypt_text).decode().strip().replace("\n","")
|
|
|
|
def aesdecrypt(self,text):
|
|
text = base64.decodebytes(text.encode(self.encode_))
|
|
self.decrypt_text = self.aes.decrypt(text)
|
|
return self.decrypt_text.decode(self.encode_).strip('\0')
|
|
|
|
# base64 编码
|
|
def encode_base64(self, data):
|
|
str2 = (data).strip()
|
|
if sys.version_info[0] == 2:
|
|
return base64.b64encode(str2)
|
|
else:
|
|
return str(base64.b64encode(str2.encode('utf-8')))
|
|
|
|
# base64 解码
|
|
def decode_base64(self, data):
|
|
import base64
|
|
str2 = (data).strip()
|
|
if sys.version_info[0] == 2:
|
|
return base64.b64decode(str2)
|
|
else:
|
|
return str(base64.b64decode(str2))
|
|
|
|
class aescrypt_py2():
|
|
def __init__(self,key,model = 'ECB',iv = None,encode_='utf-8'):
|
|
self.encode_ = encode_
|
|
self.model = {'ECB':AES.MODE_ECB,'CBC':AES.MODE_CBC}[model]
|
|
self.key = self.add_16(key)
|
|
if model == 'ECB':
|
|
self.aes = AES.new(self.key,self.model)
|
|
elif model == 'CBC':
|
|
self.aes = AES.new(self.key,self.model,iv)
|
|
|
|
def add_16(self,par):
|
|
par = par.encode(self.encode_)
|
|
while len(par) % 16 != 0:
|
|
par += b'\x00'
|
|
return par
|
|
def aesencrypt(self,text):
|
|
text = self.add_16(text)
|
|
self.encrypt_text = self.aes.encrypt(text)
|
|
return base64.b64encode(self.encrypt_text).decode().strip().replace("\n","")
|
|
|
|
def aesdecrypt(self,text):
|
|
text = base64.b64decode(text.encode(self.encode_))
|
|
self.decrypt_text = self.aes.decrypt(text)
|
|
return self.decrypt_text.decode(self.encode_).strip('\0')
|
|
|
|
############## base64 #############
|
|
# base64 编码
|
|
def encode_base64(self, data):
|
|
str2 = (data).strip()
|
|
if sys.version_info[0] == 2:
|
|
return base64.b64encode(str2)
|
|
else:
|
|
return str(base64.b64encode(str2.encode('utf-8')))
|
|
|
|
# base64 解码
|
|
def decode_base64(self, data):
|
|
import base64
|
|
str2 = (data).strip()
|
|
if sys.version_info[0] == 2:
|
|
return base64.b64decode(str2)
|
|
else:
|
|
return str(base64.b64decode(str2))
|
|
|
|
|