Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Шифрование Паролей
Каков самый быстрый, но безопасный способ шифрования паролей в (предпочтительно PHP), и для какого метода вы выбираете, является ли он портативным?
Другими словами, если я позже перенесу свой сайт на другой сервер, будут ли мои пароли продолжать работать?
Метод, который я использую сейчас, как мне было сказано, зависит от точных версий библиотек, установленных на сервере.
Если вы выбираете метод шифрования для своей системы входа в систему, то скорость-это не ваш друг, Джефф имел to-and-frow с Томасом Птачеком о паролях, и вывод был таков, что вы должны использовать самый медленный, самый безопасный метод шифрования, который вы можете себе позволить.
Из блога Томаса Птачека:
Скорость-это именно то, чего вы не хотите в функции password hash.Современные схемы паролей атакуются с помощью инкрементных взломщиков паролей.
Инкрементные взломщики не просчитывают заранее все возможные взломанные пароли. Они рассматривают каждый пароль hash индивидуально, и они передают свой словарь через функцию password hash так же, как и ваша страница входа в систему PHP. Радужный стол сухари, как образ использовать пространство для атаки пароли; добавочные сухари, как Джон Потрошитель, трещины, и LC5 работы со временем: статистика и вычисления.
Игра password attack забивается за время, необходимое для взлома пароля X. С помощью rainbow tables это время зависит от того, насколько большой должен быть ваш стол и как быстро вы можете его найти. При использовании инкрементных взломщиков время зависит от того, насколько быстро вы можете запустить функцию password hash.
Чем лучше вы можете оптимизировать свою функцию password hash, тем быстрее ваша функция password hash становится тем слабее ваша схема. MD5 и SHA1, даже обычные блочные шифры, такие как DES, предназначены для быстрой работы. MD5, SHA1 и DES-это слабые хэши паролей. На современном CPUs необработанные криптоблоки, такие как DES и MD5, могут быть битовыми, векторизованными и распараллеленными, чтобы сделать поиск паролей молниеносным. Реализация Game-over FPGA стоит всего лишь сотни долларов.
Я с Питером. Разработчики, похоже, не понимают паролей. Мы все выбираем (и я тоже виноват в этом) MD5 или SHA1, потому что они быстрые. Думая об этом (потому что кто-то недавно указал мне на это), это не имеет никакого смысла. Мы должны выбрать алгоритм хеширования, который глупо медленный. Я имею в виду, в масштабе вещей, занятый сайт будет hash паролей что? каждые 1/2 минуты? Кого волнует, если это займет 0.8 секунд против 0.03 секунды на сервере? Но эта дополнительная медлительность огромна, чтобы предотвратить все виды обычных грубых атак.
Из моего чтения, bcrypt специально разработан для безопасного хэширования паролей. Он основан на blowfish, и есть много вариантов реализации.
Для PHP, PHPPass проверить http://www.openwall.com/phpass/
Для тех, кто делает .NET, проверьте BCrypt.NET http://derekslager.com/blog/posts/2007/10/bcrypt-dotnet-strong-password-hashing-for-dotnet-and-mono.ashx
Следует отметить, что вы не хотите шифровать пароль, вы хотите hash его использовать.
Зашифрованные пароли могут быть расшифрованы, позволяя кому-то увидеть пароль. Хеширование-это односторонняя операция, поэтому исходный пароль пользователя (криптографически) пропадает.
Что касается того, какой алгоритм вам следует выбрать - используйте принятый в настоящее время стандартный:
- SHA-256
И когда вы hash пароль пользователя, не забудьте также hash в какой-нибудь другой мусор с ним. напр.:
- пароль:
password1 - соль:
PasswordSaltDesignedForThisQuestion
Добавьте соль к паролю пользователя:
String s = HashStringSHA256("password1PasswordSaltDesignedForThisQuestion");
Я не обязательно ищу самый быстрый, но хороший баланс, некоторые из серверов, для которых разрабатывается этот код, довольно медленные, сценарий, который хэширует и сохраняет пароль, выполняется за 5-6 секунд, и я сузил его до хэширования (если я комментирую хэширование, оно выполняется за 1-2 секунд).
Это не обязательно должно быть MOST secure, я не кодирую для банка (прямо сейчас), но я определенно не буду хранить пароли в виде обычного текста.
password_hash ( string $password , int $algo [, array $options ] ) . (PHP 5 >= 5.5.0, PHP 7)
password_hash() создает новый пароль hash, используя сильный односторонний алгоритм хэширования. password_hash() совместим с crypt(). Таким образом, хэши паролей, созданные crypt(), можно использовать с password_hash().