我正在寻找一个简单的小程序来加扰和解扰文件的内容。该文件是一个zip文件,因此它可能包含任何字符。正在考虑像两个补充或类似的东西,但不知道如何在Python中做到这一点。
原因是我现在的雇主有严格的互联网和文件安装法律,我想邮寄自己的文件,而邮件不会将附件检测为zip文件(即使你将其重命名为.jpg也会这样做)
我已经在我的工作机器上安装了Python。
答案 0 :(得分:2)
您可以尝试xor
使用特定值的文件内容,创建XOR-cipher,只需确保以二进制模式读/写文件。您必须对此进行测试以确定这是否适用于您的目的(它对文本文件没有问题,我不明白为什么它不适用于二进制文件。)
当然,您必须使用相同的(键)值(例如字符)进行编码和解码 - 尽管您可以对这两种操作使用相同的代码。
以下是我最近放在一起的一些代码:
import sys
def processData(filename, key):
with open(filename, 'rb') as inf, open(filename+'.xor', 'wb') as outf:
for line in inf:
line = ''.join([chr(ord(c)^ord(key)) for c in line])
outf.write(line)
if __name__ == '__main__':
if len(sys.argv) != 3:
print 'Usage: xor_it filename key'
print ' key = a single character'
else:
processData(sys.argv[1], sys.argv[2])
答案 1 :(得分:0)
我在stealthZip获得电子邮件和代理限制方面取得了成功!
但是,如果您确实想在python中执行此操作,可以尝试使用pickle。以二进制模式加载文件,将其腌制,发送,并在接收端取消选择。我不知道pickle在二进制文件中的功能如何。
答案 2 :(得分:0)
您也可以简单地对文件进行base64编码。这将使您的文件更大,但有利于成为所有ascii文本(您可以将其粘贴到电子邮件中。)
注意这会覆盖当前文件。将其更改为输出到另一个文件并不困难。
#b64.py
import base64
import sys
def help():
print """Usage: python b64.py -[de] file
-d\tdecode
-e\tencode"""
sys.exit(0)
def decode(filename):
with open(filename) as f:
bin = base64.b64decode(f.read())
with open(filename,'wb') as f:
f.write(bin)
def encode(filename):
with open(filename,'rb') as f:
text = base64.b64encode(f.read())
with open(filename,'w') as f:
f.write(text)
if len(sys.argv) != 3:
help()
if sys.argv[1] == "-d":
decode(sys.argv[2])
elif sys.argv[1] == "-e":
encode(sys.argv[2])
else:
help()