使用 OpenSSL 解密檔案時出現問題:“十六進位字串太短,用零位元組填充長度”

使用 OpenSSL 解密檔案時出現問題:“十六進位字串太短,用零位元組填充長度”

我在嘗試使用 Open SSL 解密檔案時遇到問題。我有一個由我的講師提供的名為的文件fc382Crypto.bin,我需要使用 CBC 模式的河豚演算法對其進行解密。

這是我用來解密檔案的命令:

openssl enc -aes-128-cbc -d -in fc382Crypto.bin -out decrypted_output.txt -K 112233445566778899 -iv 0000000000000000

但是,我不斷收到以下錯誤:

hex string is too short, padding with zero bytes to length
hex string is too short, padding with zero bytes to length
bad decrypt

我嘗試透過添加選項來調整命令-nopad,但問題仍然存在。我還驗證了文件的完整性fc382Crypto.bin以確保它沒有損壞。

我的導師提供的加密設定如下:

Algorithm: Blowfish
Mode: CBC
Key: 112233445566778899
IV: 0

我不確定為什麼會遇到此錯誤或如何解決它。有人可以提供有關如何使用 OpenSSL 正確解密此文件的指導嗎?

在此輸入影像描述

答案1

我不確定為什麼會遇到此錯誤或如何解決它。

您使用的是 128 位元加密演算法。因此,您的加密金鑰和初始化向量 (IV) 需要為 128 位元長。

鑰匙:0x00000000000000112233445566778899

四: 0x000000000000000000000000000000000

AES-128 加密方法顯示媒體段已使用高級加密標準 (AES) [AES_128] 和 128 位元金鑰、密碼區塊鏈 (CBC) 和公鑰加密標準 #7 (PKCS7) 進行完全加密填充[RFC5652]。 CBC 在每個段邊界上重新啟動,使用初始化向量 (IV) 屬性值或媒體序號作為 IV;請參閱第 5.2 節。

四號

該值是一個十六進位序列,指定與金鑰一起使用的 128 位元無符號整數初始化向量。使用 IV 屬性需要相容版本號為 2 或更大。有關 IV 屬性何時使用的信息,請參閱第 5.2 節。

來源:https://www.rfc-editor.org/rfc/rfc8216#section-4.3.2.4

相關內容