- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用“Botan”来加密和解密文件 (AES 256)。在 Qt 中集成库已成功完成。我遵循了很多在 Internet 上找到的示例,例如 tutorial但我得到了以下内容
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();
最佳答案
您可以从 here 获得 1.9 版,但恐怕您在使用新版本时遇到了两个问题:
get_s2k()
已过时,您应该改用 get_pbkdf()
。
在使用 PBKDF 而不是已弃用的 S2k 时,您可以将迭代次数传递给版本中的 derive_key,而不是使用 mutator 方法设置迭代。
例如看他们的encrypt2例子:
...
PKCS5_PBKDF2 pbkdf2(new HMAC(new SHA_160));
const u32bit PBKDF2_ITERATIONS = 8192;
SecureVector<byte> salt(8);
rng.randomize(&salt[0], salt.size());
SecureVector<byte> master_key = pbkdf2.derive_key(48, passphrase,
&salt[0], salt.size(),
PBKDF2_ITERATIONS).bits_of()
...
一旦您获取它们的发布并解压,您可以在 doc/examples
文件夹中查看更多示例以了解详细信息。
关于c++ - 使用 Botan 和 Qt 加密文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20874177/
我从 this answer 那里得到了很好的建议, 检查 the file list for libbotan1.10-dev 并找到/usr/lib/libbotan-1.10.a ,所以我使用了
我使用 创建了一个新的 key 对 Botan::EC_Group ecgroup("brainpool512r1"); Botan::ECDH_PrivateKey privKey(CBot
我正在使用 Botan 创建公共(public)/私有(private) ECDSA key 对。生成的公钥(即使在使用此代码的不同机器上)非常相似......我认为太相似而无法考虑安全。以下是两次运
我正在使用名为 Botan 的 c++ 加密库,并且在任意时间我在运行时收到以下错误。这是什么意思? terminate called after throwing an instance of 'B
我正在尝试使用 Botan 的函数 generate_bcrypt() 获取密码的哈希值。 我读了手册http://botan.randombit.net/passhash.html这里。后来我又读了
我用过Botan::TLS::Callbacks还有Botan::TLS::Client Botan::TLS::Server为了在客户端和服务器之间获得安全通道。同样为了加密解密数据,我使用了 和
在以下单元测试中使用 Botan::SecureVector 时: void UnitTest() { std::vector vbData; vbData.push_back(0x0
我正在尝试使用 botan 加密库运行最基本的程序。我正在使用 Botan 1.10 32 位。我在 Windows 7 上获得了带有安装程序的二进制文件。IDE 是 Visual Studio 20
有谁知道如何创建类型为 Botan::MemoryRegion 的对象以用于此方法? BigInt BOTAN_DLL fe1_encrypt(const BigInt& n, const BigIn
我只是尝试初始化Botan AutoSeeded_RNG,但由于引用错误而失败。我只是想测试一下是否可以初始化任何种类的Botan RNG,因为我在另一个项目中遇到了麻烦。 我包含正确的 header
我使用 vcpkg 作为我的包管理器,按照示例很容易构建 example用sqlite。 之后我成功安装了 botan 并尝试使用find_package(botan REQUIRED) 如示例所示
我有一个与此类似的 C++ 代码: Botan::AutoSeeded_RNG botan_rng; Botan::RSA_PrivateKey private_key(botan_rng, 2048
我开始使用 botan 密码库,我遇到了一个奇怪的函数签名: /** * Load an encrypted key from a data source. * @param source the d
我正在使用 Botan C++ 库来签署和验证一些 license.ini 文件。我已将 Botan PK_Signer 设置为使用 RSA 算法来加密使用 PKCS v1.5 创建的散列。这是我的代
Botan 是否支持 EC 公钥的“压缩”表示的序列化/反序列化? (只有 EC + 号上点的 X 坐标)。有什么例子吗? 最佳答案 是的。 Botan 默认压缩 ECC 点,例如在将公钥序列化为 X
我正在使用 windows 8 和 python 3.6.1 我在我的 cmd 中完成了以下命令: pip 安装加密商店 但是,当我运行以下 python 代码时: from cryptoshop i
我正在尝试使用 Botan 库与私有(private)证书建立 SSL/TLS 连接。不幸的是,我找不到任何使用新 TLS::Client 类的实际示例代码。该文档只是 doxygen 文档的更多文本
我正在尝试构建一个链接到 Botan 1.11 的库。我使用 configure.py 生成合并并将其包含在我的项目中。 问题是当我尝试构建项目时出现以下错误: /Applications/Xcode
我对来自 Botan 加密库的 c++ mc-eliece 实现有问题。在整个互联网上似乎几乎只有一个例子,并带有指向它的链接。 https://www.cryptosource.de/docs/mc
我在 Qt 中使用 Botan 库进行加密。我让它工作到我可以从一个文件加密和解密到另一个文件的地方,但我试图改变它以从一个文件加密到一个 QDomDocument(加密文件将只是一个 XML 文件)
我是一名优秀的程序员,十分优秀!