Я собираюсь сделать «вход в систему» для своего приложения и задавался вопросом, что является лучшим способом зашифровать пароль для моего пользователя, который я буду вводить в моей базе данных? Я нашел много способов в Google, но не знаю, какой из них лучше.пароль для шифрования
ответ
Я бы пошел в одну сторону salted hash.
Использование хэша SHA1, например, у вас есть способ сохранить пароль как хэш, который нельзя отменить обратно к исходному паролю. Затем, когда пользователь вводит свой пароль, вы выполняете один и тот же хэш SHA1 на пароле и сравниваете этот хэш с тем, что вы храните в БД, если они совпадают, то пароль правильный.
Для дополнительной защиты хэширования вы можете добавить соль, это по существу произвольно сгенерированное значение, которое вы создаете для каждого пользователя, затем создаете учетную запись и сохраняете значение соли в пользовательской записи. Когда вы создаете хэш пароля, вы сначала объединяете пароль с солью и хешем, это комбинированное значение. Чтобы аутентифицировать пользователя, вы комбинируете введенный пароль с солью, сохраненной для пользователя, выполните хеш на комбинированном значении и сравните.
Добавляя соль в микс, вы гарантируете, что хеш для паролей, которые, как оказалось, будут одинаковыми, имеют другой хэш, потому что соленая часть отличается. Поэтому, если у двух пользователей есть один и тот же пароль «Пароль1234», сохраненный хэш для двух не будет одинаковым, поэтому нельзя определить, что у двух пользователей одинаковый пароль.
+1, но я бы не рекомендовал использовать SHA1. Я бы рекомендовал blowfish/twofish или SHA-2. См. Http://stackoverflow.com/questions/1561174/sha512-vs-blowfish-and-bcrypt – Falcon 2010-12-04 11:17:28
Кошелек SHA1/SHA2 не является оптимальным, так как он быстрый и, следовательно, более восприимчив к грубой силе. Так что лучше использовать KDF. – CodesInChaos 2010-12-04 11:24:21
Это отличное место, чтобы начать работу с этим http://www.obviex.com/samples/EncryptionWithSalt.aspx – Tom 2010-12-04 11:27:13
Использование криптографических алгоритм обеспечивает рамки .net
обычно, многие приложения использует MD5 algorithem
Я рекомендую использовать Rfc2898DeriveBytes
Он использует хорошо стандартизированный Key-ДИФФЕРЕНЦ-Function , и современные хеши. Вам необходимо передать соль в дополнение к паролю для предотвращения радужных столов. И он смешивает соль и пароль для вас, поэтому вам не нужно выяснять, как это сделать самому.
Использовать bcrypt. Нет, действительно, отбросьте любые идеи, которые у вас есть, для создания собственного метода и use bcrypt. В мире уже достаточно небезопасных паролей хеширования.
Хранение соленых паролей, солями для каждого пользователя, конечно, все хорошо и хорошо. Но соление только предотвращает атаки радужного стола, это не предотвращает грубой силы. Поэтому, как ни парадоксально, вы не хотите использовать быстрый метод для генерации или проверки хэшей паролей. MD5, SHA, что угодно - они все быстрые. Повторите за мной: используйте bcrypt.
Вы можете использовать RSA алгоритм: http://www.codeproject.com/KB/security/RSACryptoPad.aspx
- 1. Пароль для шифрования
- 2. Пароль шифрования
- 3. Использование: пароль шифрования «EncryptUtil»: чистый текстовый пароль для шифрования
- 4. пароль для шифрования sha1 keySpring?
- 5. Пароль для шифрования идентификатора Asp.net
- 6. Пароль шифрования FOSUserBundle
- 7. Как сгенерировать пароль для шифрования RSA/AES
- 8. Как подтвердить пароль после шифрования
- 9. Установить пароль для шифрования для pdf в xdocreport
- 10. Пароль для шифрования Datasource для JBOSS и Tomcat6
- 11. Как хранить ключ/пароль шифрования в JSONStore
- 12. WebSphere пользовательский пароль шифрования - класс реализации
- 13. дешифровать пароль, если я знаю, функция шифрования
- 14. Дешифровка пароль после хэша пароля шифрования
- 15. Почему пароль учетной записи передается без шифрования
- 16. Как сделать пароль MD5 для шифрования при регистрации?
- 17. Можно ли добавить пароль «Мастер» для программы шифрования/дешифрования?
- 18. C# веб-пароль службы в запросе для шифрования
- 19. лучший пароль шифрования и метод дешифровки для использования с PHP
- 20. пароль для шифрования/дешифрования, хранящийся в файле конфигурации
- 21. Защитите пароль, используемый для шифрования в .NET-сборке
- 22. Пароль шифрования с использованием SecureString для plink.exe команды
- 23. Может ли пароль пользователя PDF использоваться для удаления шифрования?
- 24. Пароль для шифрования хэшей при вставке в базу данных
- 25. Как растянуть пароль пользователя для шифрования в PHP?
- 26. API для шифрования usb
- 27. Использование MAC-адреса для шифрования
- 28. Поиск шифрования для дешифрования
- 29. Алгоритм шифрования
- 30. Что лучше всего подходит для шифрования шифрования?
вам нужны "зашифрованные" пароли и пароли "HASHED" делать? Это не то же самое. Хехед более безопасен, но если вам нужно будет когда-нибудь их прочитать, тогда зашифрованный путь. Большинство ответов ниже предполагают, что вы хотите хешировать. Можете ли вы уточнить :)? – 2010-12-04 11:24:35
Я хочу хэши. Более безопасно :) – Alex 2010-12-04 12:06:53