用于创建密码的SHA-256哈希的Botan教程或示例

时间:2012-10-11 01:47:49

标签: c++ qt cryptography qcar-sdk botan

我正在将一部分.NET应用程序移植到Linux上的Qt。我试图复制.NET函数的结果来创建密码+ salt的SHA-256哈希。 .NET代码是

return new SHA256Managed().ComputeHash(buffer);

其中buffer是连接到密码的salt。

我考虑了几个crytopgraphic库,包括QCA和Botan,在阅读了几条评论后,我决定尝试Botan。但是,我没有在文档中找到正确的位置来执行上面列出的代码。

有人能指出我在精细手册中的位置或讨论使用Botan创建简单哈希的教程吗?我一直在谷歌搜索几个小时没有找到解决方案。管道和流有很多SHA-256哈希的例子,但我还没有找到简单哈希计算的例子。

1 个答案:

答案 0 :(得分:6)

我猜你只需要the documentation

执行所需操作的代码如下:

#include <vector>
#include <sha2_32.h>

using namespace Botan;

secure_vector<byte> somefunction(std::vector<byte> input) {
    SHA_256 sha;
    return sha.process(input);
}

正如我在评论中提到的,这是一种非常不安全的存储密码的方法,所以我建议使用bcrypt或PBKDF2(两者都是implemented in Botan)。 PBKDF2也是part of the .NET standard library,所以没有理由使用通用哈希函数而不是安全密码哈希函数。

bcrypt所需要的只是:

generate_bcrypt(password, random_number_generator, work_factor)