С помощью этой процедуры строка зашифровывается таким образом, что она не может быть расшифрована. Может показаться непонятным, где это может понадобиться, но на самом деле такой метод шифрования часто используется в мире компьютеров. Алгоритмы, реализующие однонаправленное шифрование, часто называют алгоритмами хеширования (hashing algorithms). Это процедура, создающая уникальный «отпечаток» исходной строки.
В РНР в качестве алгоритма хеширования чаще всего применяется MD5. Мы не станем вникать в описывающий его математический аппарат, а лишь отметим, что он принимает строку и возвращает ее уникальный 128-битовый отпечаток. В настоящее время считается невозможным по этому отпечатку восстановить исходные данные, обратив процедуру, кроме того, весьма мала вероятность того, что можно создать два набора входных данных с одинаковыми отпечатками. Это не делает системы полностью неуязвимыми, поскольку сохраняется вероятность взлома с помощью метода «грубой силы» (полный перебор до совпадения входных и выходных данных). Продолжительность взлома с помощью грубой силы зависит от сложности хешируемых данных, но для коротких паролей она невелика. Благодаря этим факторам алгоритм MD5 целесообразно применять для зашифровывания паролей, при условии, что пароли выбираются надежные. Это применение основано на том, что первоначальный пароль нельзя восстановить по его отпечатку, но при регистрации пользователя можно хешировать его пароль и сравнивать два отпечатка. Хранение паролей в открытом виде - серьезная угроза безопасности, поскольку при компрометации базы данных то же самое происходит и с паролями. Пропустите пароль через алгоритм MD5 и сохраните полученный отпечаток.
Когда пользователь зарегистрируется и вводит свой пароль, пропустите его через алгоритм MD5. Если отпечаток совпадает с тем, который был сохранен ранее, по всей вероятности, введенные данные были одинаковыми. Не следует забывать, что если пароль легко угадываем, то система не защищена, поскольку уязвима для атаки грубой силой.
Читайте также
Последние новости