Существуют различные варианты шифрования для PHP, некоторые из которых хорошо описаны в следующем вопросе:
Как вы шифруете и дешифруете PHP String?
Обновленный и принятый ответ дает хороший рабочий пример с функцией openssl_encrypt из PHP библиотеки OpenSSL.
Но когда я тестировал код, я заметил, что зашифрованная строка всегда отличается, когда вы хотите воссоздать зашифрованную строку при использовании того же ENCRYPTION_KEY.
Хотя это может быть полезно для приложений, таких как сетевое взаимодействие, мне нужно решение, где зашифрованная строка может быть получена такой же для того же ключа шифрования.
Я планирую использовать его для аутентификации пользователя с использованием идентификатора пользователя и пароля. Я буду использовать идентификатор пользователя (вместе с некоторыми дополненными символами) в качестве ключа шифрования и сохраню его в MySQL DB в зашифрованном виде.
Во время аутентификации Я НЕ ХОЧУ ДАХРИРОВАТЬ сохраненный пароль для сравнения с введенный пароль. Я не хочу, чтобы в любое время сохраненный пароль был виден в открытом виде. Просто сравните зашифрованную строку с сохраненным (зашифрованным) паролем. Это, конечно, требует, чтобы зашифрованная строка была одинаковой для всех шифрований.
Есть ли способ, опция, настройка параметра или что-то еще, чтобы получить зашифрованную строку UNIQUE?