BCrypt в PostgreSQL | Разные версии (2a и 2b) работают с одинаковым хэшем
Мой бэкэнд работает с алгоритмом версией 2b. Сейчас мне понадобилось сверять хэши прямо в базе. И тут оказалось, что pgcrypto работает с алгоритмом версией 2a (я даже сначала не понял почему не пропускает).
После я попробовал взять тот же хэш, поменять в нём версию, и он прошёл проверку!
SELECT public.crypt('#5656243lolkek243wV#', '$2a$12$CSXLdzf7kZS7i9/qDpZbS.bS5fcf7HXCUO.j5CPCBvIEjUcOs48Py') = '$2a$12$CSXLdzf7kZS7i9/qDpZbS.bS5fcf7HXCUO.j5CPCBvIEjUcOs48Py'
?column?
----------
t
(1 строка)
Причём учтите, что я просто поменял b на a в хэше! В связи с этим два вопроса:
- Как всё-таки оставить
2bна бэкэ и использовать2aизpgcrypto? - Почему хэш
2bпропускается в2a?