Python实现对文件内容进行加密
用Python实现对文件的内容进行加密,之前博主查询了资料看见的多半是Python把文件打包成另外一个格式或编码的文件,这样没意思了!还不如自己做一个加密程序,用来加密文件,这样,别人想随便盗取你的文件内容也得看得懂!它不香吗!...
目录
用Python实现对文件的内容进行加密,之前博主查询了资料看见的多半是Python把文件打包成另外一个格式或编码的文件,这样没意思了!还不如自己做一个加密程序,用来加密文件,这样,别人想随便盗取你的文件内容也得看得懂!它不香吗!
百度上的讲解基本上是什么算法之内的,真麻烦!我要是会就好了...
Small-fish文件加密库
因为要解密文件,所以我就做了第一个第三个命令行库。用来加密文件的命令行。
安装它
pip install Small-fish
直接windows命令行输入: Small-fish -h
这就能看到使用方法了
1.加密
命令行输入 Small-fish -e xxx 其中xxx代表要加密的文件(必须是UTF-8编码)
下面输出的就是解密后内容
其实没有什么好神秘的原理,就是
1.读取源文件 ——》2.将文件内容转换成指定字符 ——》4.写入一个加密文件
怎么样?是不是很简单,看效果图:
要加密文件内容
I am PYmili
You name?
加密后内容
I;/none;0a;0m;/none;P;Y;0m;0i;0l;0i;
;Y;0o;0u;/none;0n;0a;0m;0e;?;
这就是加密后的效果,都是只是概念。加密后会生成一个enc.ENC文件在当前目录,也就是命令行目录的位置
2.解密
那我们如何解密呢?
读取文件内容——》匹配内容是否相同——》转换至一个新文件
依旧是命令行命令
Small-fish -d xxx 其中xxx表示要解密文件路径
解密后就会生成dec.txt文件在当前目录,也就是命令行位置
这样文件就解密出来了!是不是很简单?
1.代码讲解
字典
class ENC:
def __init__(self):
self.cd={"a":"0x000a"}
首先我们得创建一个类和一个字典,字典用来设定每个字符串要转换成什么字符。规则就是你自己指定了!想写什么就什么。
加密函数
def enc(self, filepath):
self.path=filepath
File_Msg=[]
count = -1
for count, lirn in enumerate(open(f'{self.path}', 'r', encoding='utf-8')):
pass
count += 1
line = count
with open(f"{self.path}", 'r', encoding="utf-8") as p:
for rea in range(int(line)):
rea=p.readline()
File_Msg.append(rea)
enc=[]
with open(f"enc.ENC", 'w+', encoding="utf-8") as index:
for Msg in File_Msg:
for m in Msg:
if m == "a":
enc.append(self.cd["a"]+";")
文件加密,主要是读取文件的内容然后于字典的键匹配,匹配成功就可以写入到列表转换
for en in enc:
print(en)
index.write(en)
解密函数
解密函数于加密函数一致,只是识别的是字典的键值。然后转换
def dec(self, file):
File_Msg=[]
count = -1
for count, lirn in enumerate(open(rf'{file}', 'r', encoding='utf-8')):
pass
count += 1
line = count
with open(f"{file}", 'r', encoding="utf-8") as dex:
File_Msg=dex.read()
dec=[]
open(f"dec.txt", 'w', encoding='utf-8')
with open(f"dec.txt", 'a+', encoding='utf-8') as dexc:
print(File_Msg)
for m in File_Msg.split(';'):
if m == self.cd["a"]:
for de in dec:
dexc.write(de)
有问题或源代码在我的QQ群:706128290 免费拿取或提问
更多推荐
所有评论(0)