python文本文件加密_Python 文本加密解密 中文TXT数据

写了个爬虫爬取了最新的银行联行号数据库大约12万行数据保存为csv,又用python的pandas模块写了个离线查询工具,方便自己也方便同事,然而csv和xlsx的读取速度实在不敢恭维,转为txt后几乎秒读。为了避免txt明文被善意修改影响正常使用被迫加密...

代码如下(仅加密解密部分):

#!/usr/bin/env python

#AES-demo

import base64

from Crypto.Cipher import AES

'''

采用AES对称加密算法

'''

# str不是16的倍数那就补足为16的倍数

def add_to_16(value):

while len(value) % 16 != 0:

value += '\0'

return str.encode(value) # 返回bytes

# 加密方法

def encrypt_oracle():

# 秘钥

key = '33818121'

# 一次性读取文本内容

with open('banks.txt', 'r', encoding='utf-8') as banks:

# print(text) 测试打印读取的数据

# 待加密文本

mystr = banks.read()

text = base64.b64encode(mystr.encode('utf-8')).decode('ascii')

# 初始化加密器

aes = AES.new(add_to_16(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

# print(encrypted_text) 测试打印加密数据

# 写入加密数据到文件

with open("bankdata.txt","w") as bankdata:

bankdata.write(encrypted_text)

# 解密方法

def decrypt_oralce():

# 秘钥

key = '33818121'

# 密文

with open('bankdata.txt', 'r', encoding='utf-8') as banks:

# print(text) 测试打印读取的加密数据

# 待解密文本

text = banks.read()

# 初始化加密器

aes = AES.new(add_to_16(key), AES.MODE_ECB)

# 优先逆向解密base64成bytes

base64_decrypted = base64.decodebytes(text.encode(encoding='utf-8'))

# bytes解密

decrypted_text = str(aes.decrypt(base64_decrypted),encoding='utf-8') # 执行解密密并转码返回str

decrypted_text = base64.b64decode(decrypted_text.encode('utf-8')).decode('utf-8')

print(decrypted_text)

if __name__ == '__main__':

# encrypt_oracle()

decrypt_oralce()

加密数据截图

jia2.png

解密数据截图

jia.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值