我正在将一部分.NET应用程序移植到Linux上的Qt。我试图复制.NET函数的结果来创建密码+ salt的SHA-256哈希。 .NET代码是
return new SHA256Managed().ComputeHash(buffer);
我有创建哈希的代码,但它不是允许我将其嵌入json对象的形式。
// create the hash of the salt+password
Botan::SecureVector<Botan::byte> passwordHash = HashData(salt,StringToArray(m_password));
// convert to a QByteArray
QByteArray qPasswordHash;
for(uint i=0; i<passwordHash.size();++i){
qPasswordHash[i]= passwordHash[i];
}
作为参考,StringToArray方法如下所示
QByteArray StringToArray(QString szInput){
QByteArray buffer = szInput.toUtf8().data();
return buffer;
}
是否需要通过Documentation中显示的Base64过滤器来放置qPasswordHash以匹配.NET类的输出?如果是这样,你可以指出我的示例代码或提供使用此Botan方法的正确语法的示例吗?
答案 0 :(得分:0)
最常用的方法是使用十六进制编码,即每个字节在字符串中表示为2个十六进制数字。这比Base64更容易实现。