C++ 将Botan SHA256输出转换为base64以匹配.NET SHA256Managed().ComputeHash()
我正在将.NET应用程序的一部分移植到Linux上的Qt。我试图复制.NET函数的结果,以创建密码+salt的SHA-256哈希。NET代码是C++ 将Botan SHA256输出转换为base64以匹配.NET SHA256Managed().ComputeHash(),c++,qt,cryptography,botan,C++,Qt,Cryptography,Botan,我正在将.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 = HashD
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];
}
qPasswordHash是否需要通过Base64筛选器(如中所示)来匹配.NET类的输出?如果是这样的话,您能给我指出示例代码或提供使用此Botan方法的正确语法示例吗?最常用的方法是使用十六进制编码,即每个字节在字符串中表示为两个十六进制数字。这比Base64更容易实现
QByteArray StringToArray(QString szInput){
QByteArray buffer = szInput.toUtf8().data();
return buffer;
}