Я пишу модульный тест, который говорит, что пароли пользователей должны быть хэшированы с использованием bcrypt. Чтобы утверждать это, мне нужно иметь возможность проверить, выглядит ли строка как хеш bcrypt.
Я не могу найти функцию, которая сообщает мне, какой алгоритм хеширования использовался для строки, есть ли другой способ сделать это, кроме как что-то вроде регулярных выражений?
@JimL Soultion немного ограничивает, есть вопрос сломать структуру хеша bcrypt.
$2a$[Cost]$[Base64Salt][Base64Hash]
Таким образом, в зависимости от вашего приложения вы можете установить идентификатор bcrypt $2a
и требуемые затраты на сгенерированный хеш.
Увидеть: https://stackoverflow.com/a/10933491/1722719 для полного срыва.
Других решений пока нет …