Я пытаюсь создать двухсторонний алгоритм шифрования для моих паролей пользователей. Мне нужно, чтобы он был зашифрован, но без предварительно установленного пароля для шифрования (что я установил) (соль?) Исходный пароль не может быть расшифрованPHP Двустороннее шифрование с солью
ответ
Похоже, вы хотите использовать одностороннее криптографическое хеширование, способ шифрования. Вот хороший пример лучшей практики хранения и проверки пароля:
Чтобы сохранить его:
$ userPasswordInput = $ _POST [ 'пароль'];
$ соль = // в идеале, сгенерировать случайным образом и сохранить его в БД, в противном случае используйте константу сохраненную в файле PHP
$ Password = sha1 ($ userPasswordInput $ соль.);
Сохраните $ пароль (и желательно $ salt) в db. При сравнении, объедините соль и пользовательский ввод, sha1 it (или любое шифрование), затем сравните его с сохраненным (зашифрованным + соленым) паролем.
Я полагаю, это будет работать для шифрования, но. Я не могу расшифровать его и вернуть пароль с помощью $ salt? – Daniel
Для двухстороннего шифрования это называется «ключ», а не «соль». Проверьте функции mcrypt.
Я собираюсь использовать это на нескольких серверах/сайтах с PHP. большинство из них не имеют установленного расширения. Было бы сложно обновить каждый сервер и сайт. – Daniel
Мне нужно что-то, что встроено в php – Daniel
Я просто ищу пару функций, которые я могу использовать для кодирования и декодирования хэша, я хочу, чтобы хеш был только декодируемым, если был использован правильный ключ (тот, который вводился при кодировании) – Daniel
я сделал это так:
создать $ пользователя + $ пароль
$saltedHash = md5($salt.$password);
теперь у вас есть зашифрованный пароль ($ saltedHash), чтобы сохранить его в БД.
Если кто-то пытается войти в систему, вы делаете то же самое с введенным паролем и сравниваете его с одним в db.
Самый простой способ (хотя и очень расточительный с точки зрения хранения) - создать случайную строку и XOR ее к паролю. (Как уже указывал кто-то, это называется ключом, а не солью.) Это называется one-time pad. Как следует из названия, вы не можете повторно использовать один и тот же ключ для нескольких паролей.
- 1. Java или Spring: двустороннее шифрование с солью?
- 2. Двустороннее шифрование в php
- 3. Двустороннее шифрование с сопоставимым результатом
- 4. Двустороннее шифрование паролей без ssl
- 5. Шифрование Blowfish с пользовательской солью в Java
- 6. Безопасность PHP и MySQL: однонаправленное шифрование Vs двустороннее шифрование
- 7. Строковое шифрование с солью фиксированной длины
- 8. Java-шифрование с sha256 и солью
- 9. Двустороннее шифрование БД безопасно даже от администратора
- 10. PHP-сессии + Useragent с солью
- 11. AES Шифрование Java для iOS - с паролем, iv и солью
- 12. Простое двустороннее шифрование, которое выводит длинную буквенно-цифровую строку
- 13. MD5 с солью в PHP и JavaScript
- 14. PHP-логин с солью не работает
- 15. bcrypt с солью как?
- 16. Двустороннее шифрование на локальном веб-сервере, которое может быть украдено.
- 17. PHP-шифрование с wordpress
- 18. Аутентифицировать логин пользователя с солью
- 19. Создание/дешифрования паролей с солью/IV
- 20. ColdFusion шифровать с солью + Итерации, не работает
- 21. Хеш с солью в функции
- 22. PHP-шифрование и шифрование CryptoJS
- 23. Spring Security 3 SHA-1 с солью
- 24. Безопасность шифрования AES с постоянной солью
- 25. Как использовать SHA256 С солью?
- 26. лучший способ хранения конфиденциальных данных php-шифрование
- 27. Управление ESXi с солью-миньоном
- 28. Как Spring encodePassword с солью
- 29. MD5 с двойной рандомизированной солью?
- 30. Точка с солью в bcrypt
Зашифрованные данные всегда могут быть дешифрованы при использовании одного и того же ключа. Это [определение шифрования] (http://en.wikipedia.org/wiki/Encryption). Я предполагаю, что вы скорее имеете в виду [криптографическое хеширование] (http://en.wikipedia.org/wiki/Cryptographic_hash_function). – Gumbo