1 Star 0 Fork 5

xaay/网络设备自动巡检

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
AES.py 1.80 KB
一键复制 编辑 原始数据 按行查看 历史
蜗牛勇士 提交于 2022-07-26 17:42 . Initial commit
from Cryptodome.Cipher import AES
# from Crypto.Cipher import AES Linux系统使用这条引用,windows系统使用上面引用
from binascii import b2a_hex, a2b_hex
AES_LENGTH = 16
class prpcrypt():
def __init__(self, key):
self.key = key
self.mode = AES.MODE_ECB
self.cryptor = AES.new(self.pad_key(self.key).encode(), self.mode)
# 加密函数,如果text不是16的倍数【加密文本text必须为16的倍数!】,那就补足为16的倍数
# 加密内容需要长达16位字符,所以进行空格拼接
def pad(self, text):
while len(text) % AES_LENGTH != 0:
text += ' '
return text
# 加密密钥需要长达16位字符,所以进行空格拼接
def pad_key(self, key):
while len(key) % AES_LENGTH != 0:
key += ' '
return key
def encrypt(self, text):
# 这里密钥key 长度必须为16(AES-128)、24(AES-192)、或32(AES-256)Bytes 长度.目前AES-128足够用
# 加密的字符需要转换为bytes
# print(self.pad(text))
self.ciphertext = self.cryptor.encrypt(self.pad(text).encode())
# 因为AES加密时候得到的字符串不一定是ascii字符集的,输出到终端或者保存时候可能存在问题
# 所以这里统一把加密后的字符串转化为16进制字符串
return b2a_hex(self.ciphertext)
# 解密后,去掉补足的空格用strip() 去掉
def decrypt(self, text):
plain_text = self.cryptor.decrypt(a2b_hex(text)).decode()
return plain_text.rstrip(' ')
if __name__ == '__main__':
pc = prpcrypt('************') # 初始化密钥
e = pc.encrypt("**************") # 加密
print(e)
print(type(e))
d = pc.decrypt(e) # 解密
print(d)
print(type(d))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/xaay/AutoCheckDevices.git
git@gitee.com:xaay/AutoCheckDevices.git
xaay
AutoCheckDevices
网络设备自动巡检
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385