什么是AES对称加密算法?
具体工作步骤如下:
1、发送使用密钥A,加密明文“AES加密算法”,加密结果为“gliVVW87tgdbT73QDBDW9Q==”
2、发送方将加密结果发送至接收方。
3、接收方收到密文“gliVVW87tgdbT73QDBDW9Q==”,利用密钥A进行解密得到明文“AES加密算法”。
程序开发
开发环境:Python 3.8
依赖包:easygui、base64、Cryptodome.Cipher、re、csv、pandas
import easygui as a
import base64
from Cryptodome.Cipher import AES
import re
import csv
import pandas as pd
# 加密方法
def encrypt_oracle(text):
##'yUyLoF2TJ0Fbk+8hF63Ffw=='
# 秘钥
key = '1fi;qPa7utddahWy' #1fi;qPa7utddahWy
# 待加密文本
# 初始化加密器
aes = AES.new(str.encode(key), AES.MODE_ECB)
# 先进行aes加密
encrypt_aes = aes.encrypt(add_to_16(text))
# 用base64转成字符串形式
encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8') # 执行加密并转码返回bytes
return (encrypted_text)
# 解密方法
def decrypt(text):
# 秘钥
key = '1fi;qPa7utddahWy'
# 密文
# 初始化加密器
aes = AES.new(str.encode(key), AES.MODE_ECB)
# 优先逆向解密base64成bytes
base64_decrypted = base64.decodebytes(text.encode(encoding='utf-8'))
decrypted_text = aes.decrypt(base64_decrypted).decode()
decrypted_text = re.sub(
'[\001\002\003\004\005\006\007\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a]+',
'', decrypted_text)
return str(decrypted_text)
if __name__ == '__main__':
Msg = '手机号解密窗体'
Title='手机号解密'
Fields = ['输入路径','输出路径']
infos =a.multenterbox(Msg,Title,Fields,values=['',''])
print("输入路径为:"+infos[0])
print("输出路径为:"+infos[1])
print(len(infos))
rst=[]
with open(infos[0]) as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for i, rows in enumerate(readCSV):
rst.append(decrypt(str(rows[0])))
pf = pd.DataFrame(rst)
pf.to_csv(infos[1],index=False,header=False)