これは、ワンタイム パッドを復号化するために作成した Python プログラムですが、プログラムがデコードされたファイルの先頭に空白行を残しています。なぜ行を離れているのかはわかりませんが、どのように関連しているのかはわかっています。一番上の行を使用してファイルの名前を保存し、それを使用して復号化されたテキストのファイルに名前を付け、一番上の行を消去しますが、削除する方法がわかりませんファイルの空白行。
import os
q = 1
while q == 1:
#opens the cipher text and it converts it to decimal
cipher = raw_input("cipher text: ")
cipher1 = open(cipher, "r")
cipher2 = cipher1.read()
cipher3 = [ord(c) for c in cipher2]
#opens the key and coverts it to decimal
key = raw_input("key: ")
key1 = open(key, "r")
key2 = key1.read()
key3 = [ord(c) for c in key2]
#subtracts the key from the cipher
a = cipher3
b = key3
c = map(lambda x: (x[0]-x[1]) % 256, zip(a,b))
#prints out the decrypted plain text
decrypt = ''.join(map(chr,c))
string1 = decrypt.index('\n')
name = decrypt[0:string1]
#makes a file with the decrypted output
path1 = raw_input("out folder: ")
path2 = path1 + "/" + name
string3 = decrypt.index('\n')
length = len(decrypt)
decrypt = decrypt[string1:length]
if os.path.exists(path2):
f1 = file(path2, "a")
f1 = open(path2, "a")
f1.write(decrypt)
f1.close()
else:
f1 = file(path2, "w")
f1 = open(path2, "w")
f1.write(decrypt)
f1.close()
print 50*"-"