在https://wiki.openssl.org/index.php/Enc中它声明为了让我为openssl提供salt值来进行加密,我必须指定
使用-S salt,可以显式赋予其值(十六进制)。
这就是我在openssl中做的openssl enc -aes256 -base64 -iv 40AA481FEB82C35D1CF35CD1C0468C2F -S F80EC003AA550000 -K DD9F547EDAA1373F85EB98D0608E2DCA66D7426F31FC66B87953799153844 -p -in hi.txt -out cipher.enc
-p显示盐与我给的不同。有原因吗?如果是这样,我如何明确地将我的盐定义为openssl?
答案 0 :(得分:0)
由于您将原始字节键(选项-K
)赋予openssl,因此不会使用参数中给出的salt。
Salt用于根据(字符串)密码计算原始字节密钥。
例如,您可以使用选项-k
并将密码与盐一起提供:
$ openssl enc -aes-256-cbc -iv 40AA481FEB82C35D1CF35CD1C0468C2F -S F80EC003AA550000 -k "mypassword" -p -base64 <<< "hello"
salt=F80EC003AA550000
key=4B3178E6330155D5CB9D5D0A17C1853526D9A38BB990671029730D9202A2E89D
iv =40AA481FEB82C35D1CF35CD1C0468C2F
U2FsdGVkX1/4DsADqlUAACw5WayUfFeijGYjYaI/SQw=