相关疑难解决方法(0)

使用aes_256_cbc密码加密时的默认IV是多少?

我在一个文件中生成了一个随机的256位对称密钥,用于使用OpenSSL命令行加密某些数据,我需要使用OpenSSL库以编程方式对其进行解密.我没有成功,我认为问题可能出在我正在使用(或不使用)的初始化向量中.

我使用以下命令加密数据:

/usr/bin/openssl enc -aes-256-cbc -salt -in input_filename -out output_filename -pass file:keyfile
Run Code Online (Sandbox Code Playgroud)

我正在使用以下调用来初始化数据的解密:

EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), nullptr, keyfile.data(), nullptr))
Run Code Online (Sandbox Code Playgroud)

keyfile是一个vector<unsigned char>保存密钥的32个字节.我的问题是关于最后一个参数.它应该是密码算法的初始化向量.加密时我没有指定IV,因此必须使用某些默认值.

为该参数传递nullptr是否意味着"使用默认值"?是否为默认值,并且没有任何内容添加到第一个密码块?

我应该提一下,我能够在不提供IV的情况下从命令行解密.

c++ encryption openssl aes block-cipher

14
推荐指数
2
解决办法
4497
查看次数

标签 统计

aes ×1

block-cipher ×1

c++ ×1

encryption ×1

openssl ×1