룰 파일을 열고 내 암호화에 사용할 사전을 만들 수 있습니다. 또한 텍스트 해독에 사용할 사전을 만들어야합니다. 기본적으로 사소한 변경 사항이있는 동일한 기능이라고 가정합니다. 암호화가 잘 작동하지만 해독을 작동시키지 못합니다. 두 번째 문제는 파일을 암호화하는 동안 모든 공백과 구두점을 제거했기 때문입니다. 일단 프로그램을 실행하면 출력 파일에서 그 파일을 다시 가져 오는 방법을 알 수 없습니다. 단지 하나의 열에 인쇄됩니다. 마지막으로 이것을 .txt 파일로 출력해야합니다. 사용자가 할당 한 이름으로 .txt를 만들 수 있지만 파일에 아무 것도 인쇄 할 수 없습니다.파이썬에서 대체 암호를 사용하여 .txt 파일을 암호화 및 암호 해독하고 새로운 .txt 파일로 출력
여기까지 내가 지금까지 달성 한 바가 있습니다.
#import clauses
import string
#function definitions
#encrypt dictionary
def createrulesdictencrypt(openFile):
rulesencrypt1 = {}
for line in openFile:
rulessplit = string.split(string.strip(line))
rulesencrypt1[rulessplit[0]] = rulessplit[1]
return rulesencrypt1
#decrypt dictionary
def createrulesdictdecrypt(openFile):
rulesdecrypt1 = {}
for line in openFile:
rulessplit = string.split(string.strip(line))
rulesdecrypt1[rulessplit[1]] = rulessplit[0]
return rulesdecrypt1
openFile = open('rules.txt', 'r')
rulesencrypt = createrulesdictencrypt(openFile)
rulesdecrypt = createrulesdictdecrypt(openFile)
#print rulesencrypt
#print rulesdecrypt
#function for encrypting file
def encryptfile(openFile2):
for line in openFile2:
for word in line.split():
empty = ''
for char in word:
if char not in string.punctuation:
char=char.lower()
empty = empty+char
if len(empty) == 2:
print rulesencrypt[empty]
empty = ''
if len(empty) == 1:
print rulesencrypt[empty]
#function for decrypting file
def decryptfile(openFile2):
for line in openFile2:
for word in line.split():
empty = ''
for char in word:
if char not in string.punctuation:
char=char.lower()
empty = empty+char
if len(empty) == 2:
print rulesdecrypt[empty]
empty = ''
if len(empty) == 1:
print rulesdecrypt[empty]
#main program
ende = raw_input("To encrypt a file, enter '0':\nTo decrypt a file, enter '1':")
filename = raw_input("Enter the name of the file to be processed:")
outfilename = raw_input("Enter the name of the file to save the result to:")
openFile2 = open(filename, 'r')
outputfile = open(outfilename, 'w')
fileencrypt = encryptfile(openFile2)
filedecrypt = decryptfile(openFile2)
if ende == "0":
print encryptfile(fileencrypt)
if ende == "1":
print decryptfile(filedecrypt)
이
내가선생님 로빈를 암호화하기 위해 노력하고 있습니다 것입니다 : "오, 거짓말 쟁이"
민스트 렐 : [용감하게] 발끝까지 용감히 맞 섰다. 그는 용감한 선생 인 로빈의 용감한 피정인 퇴각했다.
암호화 기술은 정보를 다른 방식으로 표시하는 것이며 해독은 원래 방식으로 정보를 검색하는 것입니다. 그래서 어떤 시점에서 원래의 방식으로 다시 복구 할 수없는 정보를 잃어 버리면 제 제안은 구두점과 공백과 같은 모든 정보를 먼저 보존하는 것입니다 ... –