Б - Безопасность (нет)
Предисловие
Нормальные люди, которые создают сайты, беспокоятся о безопасности пользователя. Какой бы пароль у вас не был бы, шифруется при помощи алгоритма md5, которые не особо-то просто и вообще возможно дешифровать и хранится в базе в виде md5.
Примеры шифрования md5:
q1w2e3r4: c62d929e7b7e7b6165923a5dfc60cb56
Serega200188: f7a225c125d4ac254f71b389e0882e5a
a: 0cc175b9c0f1b6a831c399e269772661
hard!(PasS)worD_01nm%$: 0ffdde5638df6c56c8cb6f1f7cc1fece
Как видите, md5 плевать на длину вашего пароля зашифрованной строки, результат всегда имеет одну и ту же длину.
Суть
С этим разобрались. Но как узнать, верный ли пароль вводит пользователь? Очень просто! При регистрации пользователь вводит пароль и вводит его второй раз. Сервер не сравнивает пароли, он сравнивает md5 этих паролей. Он нигде их не хранит и не записывает, пока не зашифрует в md5. Сервер хранит в базе данных не ваш пароль, а его md5. А когда вы логинитесь на сайт, где зареганы, сервер сравнивает md5 введенного вами пароля с md5 в базе данных. Вроде бы ясно объяснил. Испокон веков так делали и до сих пор делают.
Но я бы не писал бы этот пост, если бы не...рег.ру.
Вот такое письмо мне только что пришло на почту:
А теперь вопрос: какого черта они знают мой пароль? По md5 они не могли понять ни его длину, ни из каких символов он состоит. Значит они хранят мой пароль в незашифрованном виде, что уже априори небезопасно.
И я уже подозреваю, что будет дальше, замрите в предвкушении 😉
Я иду в свой личный кабинет, чтобы сменить пароль, но...
Они не хотят принимать греческие цифры в качестве символов пароля. Я всего лишь написал туда слово "ἱερογλύφος" (греч. "иероглиф"). Проблема в том, что скрипт проверяет пароль, то есть смотрит его. Это тоже не дает мне оснований полагать, что это безопасно.
Молодцы рег.ру, так держать!