Vladson Слабые пароли пользователей это проблемы пользователей. Дырявость системы это проблемы создателей системы. Надо быть параноиком! Если есть возможность поднять защиту, то нужно поднимать защиту. О защите в целом или о ее других частях, ИМХО, нужно писать в других темах, иначе выходит флейм и оффтоп. В этом треде мы рассматриваем конкретный вопрос, хеширование, и ищем решения, наиболее защищенные от взлома. Какие у Вас есть предложения по этому вопросу?
Ок, по сути использование самого крепкого хеширования существующего на момент создания продукта. Но сделав это расслабляться не стоит, есть случаи (80% если верить статистике) когда это ровным счётом ничего не даст... PS сколько раз повторять, называйте меня на "ТЫ" (это касается всех кто пересекался со мной хотя бы в 1-м топике) я не на приём к королеве пришёл, а на форум где мои коллеги (читай "друзья")
Каждый дурак додумается ибо такое предложение уже с 2004-го года проходит в каждом втором топике про MD5 причём расшифровка второго намного меньше ресурсов требует...
Почему? А если комбинировать хеши? sha() md5() и пр... и в текст вставлять некий код.... типа 123 в начала строки, в середину и в конец...
Че-то мне слабо верится, что кто-то будет обращать хэши паролей, спертых с моего сайта Особенно, учитывая что для подбора строки за "достаточно короткое время" нужен мощный кластер. ИМХО для веб-сайтов, md5 - более чем достаточно.
Победил: PHP: <?php $id = 1; $login = 'Hight'; $regtime = 123456789; $password = '123qwe'; $key = md5($id.$login.$regtime); class crypter { static $algorithm = MCRYPT_BLOWFISH; static $mode = MCRYPT_MODE_ECB; static $resource; // Шифруем public static function encrypt($key = NULL, $string = NULL) { self::$resource = mcrypt_module_open(self::$algorithm, '', self::$mode, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size(self::$resource), MCRYPT_RAND); mcrypt_generic_init(self::$resource, $key, $iv); $encrypt_string = mcrypt_generic(self::$resource, $string); mcrypt_generic_deinit(self::$resource); mcrypt_module_close(self::$resource); return $encrypt_string; } // Душифруем public static function decrypt($key = NULL, $string = NULL) { self::$resource = mcrypt_module_open(self::$algorithm, '', self::$mode, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size(self::$resource), MCRYPT_RAND); mcrypt_generic_init(self::$resource, $key, $iv); $decrypt_string = mdecrypt_generic(self::$resource, $string); mcrypt_generic_deinit(self::$resource); mcrypt_module_close(self::$resource); return rtrim($decrypt_string); } } $encrypt_password = crypter::encrypt($key, $password); $decrypt_password = crypter::decrypt($key, $encrypt_password); echo 'Encrypt password is: '.$encrypt_password; echo '<br><br><br>'; echo 'Decrypt password is: '.$decrypt_password; ?>
Горбунов Олег с чего бы это? тебе нужно выделить из второго хеша - первый, а из первого - пароль. и в отличии от пароля, первый хеш представляет собой "шум", ни разу не внятную строку. брутфорс "сдохнет".
А еще потом можно из хэша хэша строки из двух хэшей пароля с добавлением статичного ключа выбрать все буквы и цифры в разные переменные, захэширвать, полученые символы через один собрать в строку, закодировать base46, и опять захэшировать!!!
Вот некоторое мнение: http://www.xakep.ru/magazine/xa/103/056/1.asp И я согласен с тобой Vladson. Если добрались до хэшей то чё тут все остальное... разве что хэши в шарэд файле ГЫ
Не надо подменять понятия, я просто программист который имеет о безопасности кое-какие знания... (не однократно держал форумы на дырявейшем движке, и приходилось самому себя ломать чтоб не успели ломать другие)
kostyl Часть статьи, посвященная анализу алгоритмов - на редкость бездарный бред... Остальное - банальщина.
никогда не любил дешевые статейки с Ксакепа... вот опять: че за бред, откуда мы получим строку 64 символа, если у на есть соль и есть конечный хеш? одно неизвестное и надо найти неизвестное? одно уравнение с двумя неизвестными. далее идут примеры подогнаные на простоту и быстроту. статью в топку.
по моему это получается нефигственный перебор. на "взлом" это никак не тянет, я вот как то рассматривал статью именно с этой стороны... у тебя есть конечный хеш, тебе нужно для конечного отхешить хеш соли и пароля. а перед этим угадывать пароль и его хешить.