я использую библиотеку openssl/sha.h, там всё стандартизировано... и почему тогда на 1ом этапе мои результаты одинаковы, а на 2ом этапе различны (разницу нашёл только в кодировке символов, т.е. всё оинаково кроме символьного представления)? Как решить эту проблемму, забегая на перёд я хочу подключиться к mysql сервер в онлайн хостинге, я подрубаюсь к нему, и ко мне приходит сообщение handshake по протоколу v10, от туда я беру seed и надо его отправить серверу обратно закодированному следующей формулой sha(pas)^sha(seed+sha(sha(pas))), по итогу сервер мне шлёт bad handshake, я начал искать причину(так и не нашёл), но на этапе хеширования, заметил что у меня вылезают результаты которые не правильные(или правильные и это онлайн сервисы что-то не так творят)
т.е. на том онлайн сервисе я сначала ввожу текст "YYYYYYYYYY" он мне выдаёт (c7 6f 17 f1 91 05 de 28 39 da b1 ea a2 a2 98 56 3d 67 df 21), что и совпало с моим первым результатом в программе, а на втором этапе в онлайн сервисе я ввожу (c7 6f 17 f1 91 05 de 28 39 da b1 ea a2 a2 98 56 3d 67 df 21) выбрав пункт hex to sha1 и он мне выдаёт (ed bc 29 67 9e b1 fd 0c 08 9b 7b d6 fa 40 6f 85 0f 08 68 a0), а моя программа почему-то на этом этапе выдаёт (8b b9 86 c5 25 93 23 91 4d 0b 68 d0 74 84 30 bf 0c c3 1a 63)
Это без разницы, иксы можно вообще убрать, всё равно они никакой нагрузки в данном случае не несут - это просто массив имеющий первоачальные данные, которые затираются после первого спользования SHA, например до первого использования sha переменная pas будет содержать YYYYYYYYYY (10 игриков, а сам размер массива 11 т.к. в c++ ещё выделяется место для нулевого символа '\0'), а hash1 XXXXXXXXXXXXXXXXXXXX (20 иксов и нулевой). После первого использования SHA переменная pas будет содержать YYYYYYYYYY (10 игреков и нулевой), а hash1 ("Зoс‘Ю(9Ъ±кўўV=gЯ!") в онлайн сервисе ("ÇoñÞ(9ڱꢢV=gß!") они разные хотя и имеют одинаковое десятичное представление, как я понимаю это дело кодировки, но онлайн сервис (https://v2.cryptii.com/hexadecimal/sha1) позволяет проделывать это через 16-тиричные цифры не прибегая к кодировке символов. Так введя данные на 2ом этапе хеширования в онлайн сервис (c7 6f 17 f1 91 05 de 28 39 da b1 ea a2 a2 98 56 3d 67 df 21) я получил (ed bc 29 67 9e b1 fd 0c 08 9b 7b d6 fa 40 6f 85 0f 08 68 a0), а моя программы вывела (8b b9 86 c5 25 93 23 91 4d 0b 68 d0 74 84 30 bf 0c c3 1a 63).