Мне нужно сохранить токен в базе данных и сопоставить токен, предоставленный пользователем, с токеном базы данных, для токена хеширования, который я использую sha512
, И я сравниваю оба токена с простым ==
оператор.
if($usertoken == $dbtoken) {
}
Но кто-то предложил мне использовать hash_equals()
вместо этого, поскольку это предотвратит атаки по времени (дополнительная безопасность), с bcrypt
хешировать токен. Так что я просто хочу знать, сравнивает ли hash_equals строки, хэшированные с sha512
или я должен использовать bcrypt?
Несмотря на свое название, эта функция имеет нечего делать с перемешиванием.
Он сравнивает две строки на равенство, ни больше, ни меньше. Вы можете передать ему две строки, содержащие любую произвольную последовательность символов, независимо от того, представляют ли они простой текстовый пароль или пароль, хэшированный с помощью выбранного вами алгоритма, будь то bcrypt
или же sha512
,
Других решений пока нет …