我正在将一部分.NET应用程序移植到Linux上的Qt。我试图复制.NET函数的结果来创建密码+ salt的SHA-256哈希。 .NET代码是
return new SHA256Managed().ComputeHash(buffer);
其中buffer是连接到密码的salt。
我考虑了几个crytopgraphic库,包括QCA和Botan,在阅读了几条评论后,我决定尝试Botan。但是,我没有在文档中找到正确的位置来执行上面列出的代码。
有人能指出我在精细手册中的位置或讨论使用Botan创建简单哈希的教程吗?我一直在谷歌搜索几个小时没有找到解决方案。管道和流有很多SHA-256哈希的例子,但我还没有找到简单哈希计算的例子。
答案 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)