我正在尝试使用“Botan”来加密和解密文件(AES 256)。将库集成到 Qt 中已成功完成。我遵循了很多我在互联网上找到的例子,比如这个教程,但我得到了以下
error:
class Botan::S2K' has no member named 'set_iterations'
我发现创建本教程的 Botan 版本已经过时,而且我使用的版本 (1.10.5) 不兼容。
我的问题是:
我在哪里可以找到新版本的教程?如果不存在,我在哪里可以下载以前版本(1.8 或 1.9)的 windows 安装程序?
到目前为止,这是我的代码:(加密)
string file = "...";
string fileEncrypted = "...";
Botan::LibraryInitializer init;
string passphrase = "password";
AutoSeeded_RNG rng;
S2K* s2k = get_s2k("PBKDF2(SHA-256)");
s2k->set_iterations(4049);
SecureVector<byte> key_and_IV = s2k->derive_key(48, passphrase).bits_of();
SymmetricKey key(key_and_IV, 32);
InitializationVector iv(key_and_IV +32, 16);
std::ifstream in(file, std::ios::binary);
std::ofstream out(fileEncrypted, std::ios::binary);
Pipe pipe(get_cipher("AES-256/CBC", key, iv,ENCRYPTION),new DataSink_Stream(out));
pipe.start_msg();
in >> pipe;
pipe.end_msg();