第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用密碼術(shù)從用戶輸入的 python 中解密消息?

如何使用密碼術(shù)從用戶輸入的 python 中解密消息?

炎炎設(shè)計(jì) 2021-07-21 17:31:31
我能夠解密運(yùn)行腳本的消息,但當(dāng)我使用用戶輸入法獲取加密消息時(shí)無法解密。我有這個(gè)簡單的腳本:from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modesfrom cryptography.hazmat.backends import default_backendfrom cryptography.hazmat.primitives import paddingpadder = padding.PKCS7(128).padder()backend = default_backend()def operation_getmessage():    messagesinput = input("Please, insert messages to decrypt: ")    messagesinput = bytes(messagesinput, "utf-8")    message = padder.update(messagesinput)    message += padder.finalize()    return messagekeyinput = 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:", message_encrypt)test = operation_getmessage()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())
查看完整描述

2 回答

?
Helenr

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



查看完整回答
反對(duì) 回復(fù) 2021-07-28
?
肥皂起泡泡

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


查看完整回答
反對(duì) 回復(fù) 2021-07-28
  • 2 回答
  • 0 關(guān)注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)