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