简单的Python代码,用于加扰解密文件内容

时间:2012-09-27 16:10:34

标签: python file scramble

我正在寻找一个简单的小程序来加扰和解扰文件的内容。该文件是一个zip文件,因此它可能包含任何字符。正在考虑像两个补充或类似的东西,但不知道如何在Python中做到这一点。

原因是我现在的雇主有严格的互联网和文件安装法律,我想邮寄自己的文件,而邮件不会将附件检测为zip文件(即使你将其重命名为.jpg也会这样做)

我已经在我的工作机器上安装了Python。

3 个答案:

答案 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()