Двухстороннее шифрование PHP с помощью соли - PullRequest
0 голосов
/ 21 сентября 2010

Я пытаюсь создать алгоритм двустороннего шифрования для паролей моих пользователей.Мне нужно, чтобы он был зашифрован, но без предварительно установленного прохода шифрования (что я установил) (соль?) Исходный пароль не может быть расшифрован

Ответы [ 4 ]

2 голосов
/ 21 сентября 2010

Для двустороннего шифрования это называется «ключ», а не «соль».Проверьте mcrypt функции.

2 голосов
/ 21 сентября 2010

Звучит так, как будто вы хотите использовать одностороннее криптографическое хеширование, а не двустороннее шифрование.Вот хороший пример оптимального хранения и проверки пароля:

Чтобы сохранить его:

$ userPasswordInput = $ _POST ['password'];

$ salt =// в идеале, генерировать один случайным образом и сохранить его в БД, в противном случае использовать константу, сохраненную в php-файле

$ password = sha1 ($ userPasswordInput. $ salt);

Save $пароль (и желательно $ соль) к БД.При сравнении объедините соль и вводимые пользователем данные, определите их (или любое другое шифрование), а затем сравните с сохраненным (зашифрованным + соленым) паролем.

0 голосов
/ 21 сентября 2010

Самый простой способ (хотя и очень расточительный с точки зрения хранения) - это сгенерировать случайную строку и присвоить XOR пароль (Как уже отмечалось, это называется ключ, а не соль.) Это называется одноразовый блокнот . Как видно из названия, вы не можете использовать один и тот же ключ для нескольких паролей.

0 голосов
/ 21 сентября 2010

Я сделал это так:

создать $ user + $ пароль

$saltedHash = md5($salt.$password);

теперь у вас есть зашифрованный пароль ($ saltedHash) для его сохранения в БД.

если кто-то попытается войти, вы делаете то же самое с введенным паролем и сравниваете его с паролем в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...