【发布时间】:2012-11-07 01:58:04
【问题描述】:
我正在将 .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;
}
qPasswordHash 是否需要通过 Base64 过滤器(例如 Documentation 中所示的过滤器)才能匹配 .NET 类的输出?如果是这样,您能否指出示例代码或提供使用此 Botan 方法的正确语法示例?
【问题讨论】:
标签: c++ qt cryptography botan