2 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
我使用了@Ralf 和@Kevin_Fontaine 的建議來修復(fù)您的代碼,使其正常工作。這是更正后的腳本,更改了幾行并標(biāo)有注釋:
import base64 # new line here
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import padding
backend = default_backend()
def operation_getmessage():
padder = padding.PKCS7(128).padder() # new line here
messagesinput = input("Please, insert messages to decrypt: ")
messagesinput = bytes(messagesinput, "utf-8")
message = padder.update(messagesinput)
message += padder.finalize()
return message
keyinput = input("Please insert the key used for encrypt : ")
print(keyinput)
key = bytes(str(keyinput), 'ascii')
print("key value is :", key)
message = operation_getmessage()
cipher = Cipher(algorithms.TripleDES(key), modes.ECB(), backend=backend)
encryptor = cipher.encryptor()
message_encrypt = encryptor.update(message) + encryptor.finalize()
print("Value of message_encrypted:", base64.b64encode(message_encrypt)) # new line here
test = operation_getmessage()
test = base64.b64decode(test) # new line here
print("Value of test: ", test)
decryptor = cipher.decryptor()
message_decrypt = decryptor.update(test) + decryptor.finalize()
print("Value of message_decrypted is: ", message_decrypt)
unpadder = padding.PKCS7(128).unpadder()
data = unpadder.update(message_decrypt)
print("Value of message is: ", data + unpadder.finalize())

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
查看文檔:
之后
finalize()
被稱為該對(duì)象可以不再被使用;update()
并且finalize()
將引發(fā)一個(gè)AlreadyFinalized
例外。
嘗試初始化padder
函數(shù)內(nèi)部operation_getmessage()
,以便每次調(diào)用函數(shù)時(shí)它都是一個(gè)新的填充器。
def operation_getmessage(): padder = padding.PKCS7(128).padder() ... return message
添加回答
舉報(bào)