Есть радужные таблицы, которые помогают "расхешировать" строку на основе имеющихся. Очень-очень много распространенных паролей: http://passcracking.ru/ Eсли не ошибаюсь, имеются многие хеши дат (дней рождений), что очень часто у баб встречается в паролях. Кстати: PHP: <? $times = time(); $hash = "password"; while($times) { $hash = md5($hash); $times--; } ?>
Apple расшифровываются обычные хеши. в первом же посте я предлагаю шифровать, получать 32 байта и эти 32 байта еще раз шифровать!
Да не расшифровываются хеши НИКАКИЕ, их можно лишь ПОДОБРАТЬ. Эта система устарела лет 5 назад. vBulletin юзал помню систему хеш((хеш + хеш) + хеш(рандом)). Так что тут америку никто не открыл, двойной хеш УЖЕ никто не использует. Я использую стандартную функцию MySQL PASSWORD и счастлив.
Любой шифр можно расшифровать, потому что он имееют дешифрующий ключ. Возмем, например, строку hello. Представим каждую из этих строк в их ASCII представлении, далее переведем их в двоичный вид (по 4 бита) и предварим каждый из битом числом AF возведенным в степень, равную делению основания двойки на количество символов. Мы получили строку, применив к которой обратный процесс, мы получим исходную. С хешем такого сделать нельзя.
Это хеш для проверки целостности, но не гарантирует уникальность Каждый раз разное название? А, собсетвенно, зачем?
В свете лютого, бешеного холивара с некотороми разрабами ПХП по поводу поведения crc32 на разных платформах... не юзай ее =)
флоппик ага, я видал тему на похапэклабе. Но какая мне разница: отрицательное значение или положительное? мне нужно идентификатор для кеша получить. Apple ну типа есть класс коллекция новостей, быгыгы. И вот, там разные варианты вызова есть, разные фильтры. И мне нужно ж как-то это дело закешировать. Я сериализую массив фильтров + массив полей и делаю md5 от этого. Потом записываю в APC как ключ 'название_класса' . хеш. вот такой кодобред получается.
Hight кто сказал что базю утянули? да и базу утянут с дважды хешированными данными Koc абсолютно уникальное значение можно получить так: "md5(time и случайное число)". можно без мд5. или "md5(time) случайное число"
microtime(true) - число впринципе уникальное, хоть и упорядоченно возрастающее. добавте ещё mt_rand(PHP_INT_MAX) и в какой-нить хеш подлинее md5 и покруче по стойкости - вот вам будет уникальный хеш с вероятностью повторения настолько малой, что может не учитываться вовсе.