Поскольку аналогичный вопрос был расценен как не по теме ... Я изменил свой вопрос (без сомнения, чтобы соответствовать правилам сайта) в соответствии с несколькими главными вопросами о самом stackoverflow (приведенными внизу).
ОС: CentOS (GCC) Сценарий: управление паролями в Интернете Pref: реализация OpenBSD
Я пытаюсь использовать bcrypt (используя окончательный вариант). Но, похоже, не могу найти надежных и правильных способов сделать это, включая создание хэшей, перезапись памяти и их сохранение.
Я видел основные вопросы по stackoverflow (и security.stackex), помеченные как bcrypt, на данный момент у меня есть не видел комбинированный пример правильного способа сделать это. Что я собрал:
Честно говоря, есть несколько способов ошибиться при объединении всех этих блоков, и я также видел, как люди заметно стремятся рекомендовать соленые хэши паролей, даже если они уходят от темы в других вопросах.
Я спрашиваю не о лучшем способе (который может разделить мнения), а об одном из лучших способов сделать это с точки зрения кода.
У меня есть строка 'plainpassword' с правильным завершением NULL и обработанная (пожалуйста, не вдавайтесь в это), содержащую пароль, введенный пользователем.
что дальше? Как теперь сгенерировать хеш bcrypt? И как правильно сравнить его с хешем, запрошенным из Mysql? используя strncmp (или даже strcmp) или strcoll?
как мне перезаписать открытый текст в памяти? мне нужно что-нибудь еще?
Должен ли я использовать это: https://man.openbsd.org/crypt_checkpass.3
Я смиренно обращаюсь за помощью. Большое спасибо.
Похожие вопросы по Stackoverflow:
Как создать хеш SHA1 в рубине?
Хранение хеш-значений SHA1 в MySQL
HMAC-SHA1: как это правильно сделать на Java?





Здесь описаны функции библиотеки BSD для работы с bcrypt.
https://man.openbsd.org/crypt_newhash.3
Создайте хеш с помощью crypt_newhash () или используйте crypt_checkpass () для сравнения хеша и пароля.
Это простые функции. Если вы не можете заставить их работать, вам понадобится учебник по C, а не вопросы.
Точно так же сравнивая нужные строки strncmp (). Это стандартные и хорошо документированные функции.
Похоже, друг мой, ты неправильно прочитал мой вопрос. и, кстати, я сам разместил ссылку перед вами. Было бы полезно, если бы вы еще раз правильно ответили на мой вопрос.