哪些默认参数使用 OpenSSL -pbkdf2?

Val*_*tti 3 c openssl aes pbkdf2 cbc-mode

我用这个命令加密了一个文件:

openssl enc -aes-192-cbc -e -pbkdf2 -in <infile> -out <outfile> -pass pass: <password>

现在我正在尝试在 c 中对其进行解密并利用 pbkdf2 我正在使用该函数:

int PKCS5_PBKDF2_HMAC (const char * pass, int passlen,
                        const unsigned char * salt, int saltlen, int iter,
                        const EVP_MD * digest,
                        int keylen, unsigned char * out);
Run Code Online (Sandbox Code Playgroud)

但问题是:我知道参数 pass、passlen、keyless 和 *out...

我怎么知道上面写的命令对应的salt、iter和digest的参数是什么?

Mat*_*ell 6

openssl enc命令不是对输入文件的直接加密。它在前面与盐一起添加了“魔法”值。魔法值是字符串“Salted__”(注意双下划线)后跟 8 个字节,这是一个随机生成的盐。或者,您可以使用“-S”选项(以十六进制指定)在命令行上指定您自己的盐。您可以指定要与“-md”参数一起使用的摘要。默认值为 sha256。您可以使用“-iter”参数指定迭代次数。默认值为 10000。