Если я создаю SHA-256 в терминале, я получаю красивый гекс, ха sh:
echo -n ChillyWilly | sha256sum
4c74e3994a247dfc31a515721528c78bb6ec09ccdcfd894d09f4aa44131393a8 -
Если я пытаюсь сделать то же самое с crypt (3) функция, тогда я получаю что-то совершенно другое:
const char* what = crypt("ChillyWilly", "$5$");
printf("%s\n", what);
$5$$fQITOGYPwBrwOSpjX1Uhx5Ock/J84zbrqmTtg/SlvMB
Это выглядит как Base64, но это не так.
Я предполагаю, что если ключ и соль равны, то я должен получить тот же результат. Все хэши SHA-256 в сети сгенерируют одинаковый результат из одной и той же комбинации ключ / соль.
Как я могу получить тот же гекс ха sh с помощью функции crypt (3)? Я установил $ 5 $, как указано на странице справки crypt , которая должна принудительно заставить функцию crypt перейти в режим SHA-256.
Я знаю, что здесь есть несколько похожих вопросов, но они не кажутся содержать правильные ответы.
Спасибо!