python3에서이 소프트웨어를 만들었습니다. 문제는 파일을 해독하려면 소프트웨어에서 결과를 쓰지 않는 것입니다. 나는 GUI로 easygui를 사용하고 있습니다. 마지막으로 나는 어떤 오류 메시지도 가지고 있지 않다. 소프트웨어는 보통 닫히기 만하지만 파일은 암호화 된 상태로 유지됩니다. 당신이 필요한 패딩 직접 수행해야합니다 : 당신은 고려 AESCipher.encrypt
and AESCipher.decrypt
의 요구 사항을 잊어 버린python에서 pycrypto로 암호화 할 수는 있지만 해독 할 수는 없습니다.
def decrypt(key, filename):
chunksize = 64 * 1024
outputFile = filename[11:]
with open(filename, 'rb') as infile:
filesize = int(infile.read(16))
IV = infile.read(16)
decryptor = AES.new(key, AES.MODE_CBC, IV)
with open(outputFile, 'wb') as outfile:
while True:
chunk = infile.read(chunksize)
if len(chunk) == 0:
break
outfile.write(decryptor.decrypt(chunk))
outfile.truncate(filesize)
def getKey(password):
hasher = SHA256.new(password.encode('utf-8'))
return hasher.digest()
def Main():
image = "./images/encryption.gif"
msg = "Do you want to encrypt or decrypt a file ?"
choices = ["Encrypt", "Decrypt", "Exit"]
reply = buttonbox(msg, image=image, choices=choices)
if reply == 'Encrypt':
filename = fileopenbox(msg="Select the file to Encrypt",title="Select the file to Encrypt", default='*', filetypes=None, multiple=False)
password = passwordbox(msg="Enter a password",title="Enter a password",default="")
encrypt(getKey(password),filename)
elif reply == 'Decrypt':
filename = fileopenbox(msg="Select the file to Decrypt", title="Select the file to Decrypt", default='*', filetypes=None, multiple=False)
password = passwordbox(msg="Enter a password",title="Enter a password",default="")
decrypt(getKey(password),filename)
else:
sys.exit(0)
if __name__ == '__main__':
Main()
GitHub 사이트에 대한 링크와 코드로 구성된 답변을 게시 한 다음 답변을 게시하면 정상적인 동작이 아닙니다. 코드를 게시하려면 패딩/패딩을 제공하고 편집하여 내 대답에 통합하십시오. 당신은 그것을 받아 들일 수 있습니다. –