openssl 通过指定 AES 256 密钥而不是密码进行加密

openssl 通过指定 AES 256 密钥而不是密码进行加密

我需要使用 aes-256-ecb 加密一些数据,因为后端代码需要它作为配置。我可以使用从密码短语派生的密钥进行加密:

openssl enc -p -aes-256-ecb -nosalt -pbkdf2 -base64 -in data-plain.txt -out data-encrypted.txt | sed 's/key=//g'

这使用派生密钥进行加密并在控制台中输出密钥。

但是,我找不到如何使用生成的密钥来执行此操作,例如:

  1. 使用以下命令生成 256 位密钥:

    openssl rand -base64 32 > key.data

  2. 然后在加密过程中使用此密钥,例如:

    openssl enc -p -aes-256-ecb-key=key.data-nosalt -pbkdf2 -base64 -in data-plain.txt -out data-encrypted.txt

这可能吗?

答案1

您必须使用 指定十六进制密钥-K。请注意,您还需要-iv为某些密码和操作模式指定 IV 。-nopad如果您要解密原始 AES 块(即不使用填充),您还需要添加ECB 解密。请注意,如果用于加密多个区块,ECB 是非常不安全的。

相关内容