Для моего сайта я хранить свои пароли пользователей в базе данных с помощью этой функции MySQL:Как проверить значение шифрования mysql с солью в PHP?
ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
Теперь для моих пользователей для входа нужно проверить пароль, которые они поставляют со значением в базе данных.
Я предположил, что это было бы так просто, как это:
SELECT user FROM users WHERE id = $id AND password = ENCRYPT('$password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
Однако стало очевидно, что это не будет работать из-за RAND() функция ...
Так как я бы воссоздать этот пароль в PHP (или mysql), чтобы сопоставить его с зашифрованным паролем? Я предполагаю, что мне нужно будет использовать crypt() или hash(), но я честно не уверен, что PHP должен использоваться или MySQL.
Я использую MySQL версии 5.5, PHP версии 5.3
Вы - СОЛ. Извините – Orangepill
Может ли этот язык, кроме MySQL/PHP, сделать это? – Andy
@Orangepill: Нет, он в порядке. 'ENCRYPT()' плохо назван; это фактически хеш-функция. – duskwuff