Жопа в том, что подобрать входящие строки (с учётом появления функции «unmd5» какой-нибудь, которая бы возвращала массив с подходящими значениями) для md5(md5('[password]').md5(md5('[password]'))) не очень-то возможно.
Ну да, это явное преимущество. Но представить только, что пароль от 6 до 16 символов в длину, например. А из хэша мы получаем список соответствующих ему входящих значений… Во сколько раз вырастает вероятность узнать пароль?
Ну может быть и статью следует написать… Но, к слову сказать, MD5 — открытый алгоритм шифрования :) А разработан он настолько профессионально, что дешифровать его очень и очень сложно. Все приходят к выводу, что якобы невозможно.
Навёл на интересную мысль: а что, если бы php-shop был OpenSource проектом? С тем же «добрым кодом», но абсолютно бесплатный. Пользовался был ли он такой популярность или весь секрет в том, что он коммерческий? Типа там внутри всё «схвачено», разработано профессионалами. Вон продажи какие! :)
Вообще, expression для IE - это тот же самый JavaScript.
Мой опыт показывает, что грамотная вёрстка предполагает на страницы использовать всего навсего один блок для expression. Но сложность возникает, если нужно определить не только минимальную ширину, но и максимальную.
Так вот, если для одного блока определить два expression'а (min-width и max-width), то именно тогда начинаются тормоза и "конфликт". Для себя я нашёл решение: нужно использовать два блока. Один блок для expression(min-width), другой - для expression(max-width).
Жопа в том, что подобрать входящие строки (с учётом появления функции «unmd5» какой-нибудь, которая бы возвращала массив с подходящими значениями) для md5(md5('[password]').md5(md5('[password]'))) не очень-то возможно.
А я считаю, что даже если код безупречно написан, то всё равно не у каждого есть надобность тратить время на его изучение.
Мой опыт показывает, что грамотная вёрстка предполагает на страницы использовать всего навсего один блок для expression. Но сложность возникает, если нужно определить не только минимальную ширину, но и максимальную.
Так вот, если для одного блока определить два expression'а (min-width и max-width), то именно тогда начинаются тормоза и "конфликт". Для себя я нашёл решение: нужно использовать два блока. Один блок для expression(min-width), другой - для expression(max-width).