- 1
- 2
- 3
ENCRYPT(str[,salt])
Шифрует аргумент str, используя вызов системной функции кодирования crypt() из Unix. Аргумент salt должен быть строкой из двух символов (в версии MySQL 3.22.16 аргумент salt может содержать более двух символов):
Если функция crypt() в данной операционной системе недоступна, функция ENCRYPT() всегда возвращает NULL. Функция ENCRYPT() игнорирует все символы в аргументе str, за исключением первых восьми, по крайней мере в некоторых операционных системах - это определяется тем, как реализован системный вызов базовой функции crypt().
Сегодня при входе в админку сайта ошибся в последнем знаке 10 значного пароля, но успешно зашел. Повторил опыт опять успешно.
Глянул в код там такая проверка
AND password= ENCRYPT(concat('".mysqli_escape_string($ this->db_class->link,$pass)."',clients.salt),'SECRET_KE Y')";
Теперь рву волосы на жопе.
Говнокод мой.
inkanus-gray 16.04.2015 16:53 # 0
The ENCRYPT() function is deprecated as of MySQL 5.7.6, will be removed in a future MySQL release, and should no longer be used. Consider using AES_ENCRYPT() instead.
Dummy00001 16.04.2015 18:22 # +5
ЗЫ не шутка, http://en.wikipedia.org/wiki/MySQL :
Initial release 23 May 1995; 19 years ago
inkanus-gray 16.04.2015 18:25 # 0
bormand 16.04.2015 18:28 # 0
Да у этих ленивых и жадных распиздяев и PHP 4.0 в изобилии...
Dummy00001 16.04.2015 17:07 # 0
Fike 16.04.2015 17:09 # +1
Vasiliy 16.04.2015 17:12 # 0
inkanus-gray 16.04.2015 18:33 # +1
3_14dar 16.04.2015 18:53 # 0
bormand 16.04.2015 19:14 # +1
Vasiliy 16.04.2015 19:16 # +2
3_14dar 16.04.2015 19:19 # +1
Vasiliy 16.04.2015 19:30 # +1
Fike 16.04.2015 23:22 # 0
3_14dar 16.04.2015 23:26 # 0
Fike 16.04.2015 23:46 # 0
Смысл в том, что если ничего остального не подходит, выбирается он. То ли я тогда доллар проебал, то ли он почему-то считался за подходящий символ, но выбирался именно DES.
3_14dar 16.04.2015 23:50 # 0
Это видно. Нигде не написано, что DES хеширует первые 8 символов (а не 7?)
Fike 16.04.2015 23:56 # 0
upd хотя и на русском
Кроме того, она использует только первые восемь символов строки str, поэтому более длинные строки, начинающиеся с тех же восьми символов, сгенерируют один и тот же результат (при использовании одинаковой соли).
3_14dar 17.04.2015 00:04 # 0
Fike 17.04.2015 00:19 # +2
3_14dar 17.04.2015 02:50 # 0
bormand 16.04.2015 18:26 # 0
Fike 16.04.2015 23:22 # 0
ebal3_14 16.04.2015 22:20 # −1
3_14dar 16.04.2015 23:55 # 0
da_vi_ohueli 17.04.2015 00:00 # −3
poluebki 17.04.2015 02:06 # −4
Fike 17.04.2015 02:49 # +1
sukablya 17.04.2015 03:27 # −4