【发布时间】:2021-01-27 11:42:27
【问题描述】:
我正在使用以下 wiki 中的加密和解密功能: https://wiki.openssl.org/index.php/EVP_Symmetric_Encryption_and_Decryption
它使用 AES-256-cbc 算法,密钥 =“01234567890123456789012345678901”和 iv =“0123456789012345”。
我能够加密我的文本,将其写入文件 encrypted.enc 并从文件中返回解密。
我只是使用以下代码将加密的密文写入文件:
fd = fopen ("/var/local/encrypted.enc", "w");
fwrite ((const char *)ciphertext, sizeof(char), ciphertext_len, fd);
fclose(fd);
现在我想从 bash 提示符下解密这个文件(不使用上面的代码)。我尝试了不同的标志,但无法弄清楚如何准确地做到这一点。
我试过了:
openssl enc -aes-256-cbc -d -out decrypted.txt -in encrypted.enc -iv 0123456789012345 -k 01234567890123456789012345678901
但在十六进制宽度方面出现错误。因此,将这些值转换为十六进制并尝试:
openssl enc -aes-256-cbc -d -out decrypted.txt -in encrypted.enc -iv 30313233343536373839303132333435 -k 3031323334353637383930313233343536373839303132333435363738393031
但现在我收到“Bad Magic Number”错误...
如何使用 openssl 实用程序解密文件?
【问题讨论】:
-
-k应该是-K。它在 Unix 系统上应该没有任何区别,但您也应该使用"wb"打开文件,而不是"w"。