Преобразуйте вывод Botan SHA256 в base64 для соответствия .NET SHA256Managed (). ComputeHash ()

Я портирую часть приложения .NET на Qt в Linux. Я пытаюсь повторить результаты функции .NET, чтобы создать хэш 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, такой как показан в Документация для того, чтобы соответствовать вывод из класса .NET? Если да, то можете ли вы указать мне пример кода или предоставить пример правильного синтаксиса для использования этого метода Ботана?

0

Решение

Наиболее распространенным способом является использование шестнадцатеричного кодирования, то есть каждый байт представлен в виде 2-шестнадцатеричных цифр в строке. И это проще в реализации, чем Base64.

0

Другие решения

Других решений пока нет …