Скрипт из заданного диапазона символов (задается в массиве $char) скрипт генерирует ВСЕ возможные кобинации и их соответствующие md5 хэши и пишет это все в базу mysql. В начале скрипта прописывается настройки бд. Для начала экстремальной закачки бд райнбов таблицы md5 просто запустить скрипт. За все последствия с Вашим сервером я ответственности не несу. PHP: <?php // Конфигурация $host = 'host'; // Хост БД $user = 'username'; // Паользователь БД $password = 'passtodb'; // Пароль БД $database = 'md5'; // Имя БД // Соединяемся с БД mysql_connect($host, $user, $password) or die('Не удалось подключиться к БД.'); // Выбираем Необходимую БД mysql_select_db($database); error_reporting(E_ALL & ~E_NOTICE); // Устанавливаем неограниченное время выполнения скрипта set_time_limit(0); function addmd5($pass) { // Массив символов $char[] = 'a'; $char[] = 'b'; $char[] = 'c'; $char[] = 'd'; $char[] = 'e'; $char[] = 'f'; $char[] = 'g'; $char[] = 'h'; $char[] = 'i'; $char[] = 'j'; $char[] = 'k'; $char[] = 'l'; $char[] = 'm'; $char[] = 'n'; $char[] = 'o'; $char[] = 'p'; $char[] = 'q'; $char[] = 'r'; $char[] = 's'; $char[] = 't'; $char[] = 'u'; $char[] = 'v'; $char[] = 'w'; $char[] = 'x'; $char[] = 'y'; $char[] = 'z'; $char[] = '1'; $char[] = '2'; $char[] = '3'; $char[] = '4'; $char[] = '5'; $char[] = '6'; $char[] = '7'; $char[] = '8'; $char[] = '9'; $char[] = '0'; $char[] = 'A'; $char[] = 'B'; $char[] = 'C'; $char[] = 'D'; $char[] = 'E'; $char[] = 'F'; $char[] = 'G'; $char[] = 'H'; $char[] = 'I'; $char[] = 'J'; $char[] = 'K'; $char[] = 'L'; $char[] = 'M'; $char[] = 'N'; $char[] = 'O'; $char[] = 'P'; $char[] = 'Q'; $char[] = 'R'; $char[] = 'S'; $char[] = 'T'; $char[] = 'U'; $char[] = 'V'; $char[] = 'W'; $char[] = 'X'; $char[] = 'Y'; $char[] = 'Z'; $char[] = '!'; $char[] = '@'; $char[] = '.'; $char[] = '"'; $char[] = "'"; $char[] = '#'; $char[] = ';'; $char[] = '$'; $char[] = '№'; $char[] = "%"; $char[] = '^'; $char[] = ':'; $char[] = '?'; $char[] = '&'; $char[] = "*"; $char[] = '('; $char[] = ')'; $char[] = '-'; $char[] = '_'; $char[] = "+"; $char[] = '='; $char[] = '/'; $char[] = '\\'; $char[] = ","; /////////////////////////////////////////////////////////// // Выбираем количество символов ( Если поставите 4 то он будет генерировать на 5 и т.д. ) $maxlen = 3; if(strlen($pass) > $maxlen) return 'end.'; for($j = 0; $j < count($char); $j++) { $temp = $pass.$char[$j]; $insert_hash = md5($temp); $insert_pass = addslashes($temp); // Добавляем хеш в БД $query = "INSERT INTO MD5_BASE(id,hash,pass) VALUES (NULL, '$insert_hash','$insert_pass')"; $insert_md5 = mysql_query($query); //////////////////////////////////////////////// $result = addmd5($temp); } } addmd5(""); ?> Создаём базу из SQL: PHP: -- phpMyAdmin SQL Dump -- version 2.9.0 -- http://www.phpmyadmin.net -- -- Хост: localhost -- Время создания: Дек 24 2009 г., 09:33 -- Версия сервера: 5.0.51 -- Версия PHP: 5.2.6 -- -- База данных: `md5` -- -- -------------------------------------------------------- -- -- Структура таблицы `md5_base` -- CREATE TABLE `md5_base` ( `id` int(11) default NULL, `hash` text, `pass` text ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; -- -- Дамп данных таблицы `md5_base` -- Для линивых массивы символов PHP: $char[] = 'a'; $char[] = 'b'; $char[] = 'c'; $char[] = 'd'; $char[] = 'e'; $char[] = 'f'; $char[] = 'g'; $char[] = 'h'; $char[] = 'i'; $char[] = 'j'; $char[] = 'k'; $char[] = 'l'; $char[] = 'm'; $char[] = 'n'; $char[] = 'o'; $char[] = 'p'; $char[] = 'q'; $char[] = 'r'; $char[] = 's'; $char[] = 't'; $char[] = 'u'; $char[] = 'v'; $char[] = 'w'; $char[] = 'x'; $char[] = 'y'; $char[] = 'z'; $char[] = '1'; $char[] = '2'; $char[] = '3'; $char[] = '4'; $char[] = '5'; $char[] = '6'; $char[] = '7'; $char[] = '8'; $char[] = '9'; $char[] = '0'; $char[] = 'A'; $char[] = 'B'; $char[] = 'C'; $char[] = 'D'; $char[] = 'E'; $char[] = 'F'; $char[] = 'G'; $char[] = 'H'; $char[] = 'I'; $char[] = 'J'; $char[] = 'K'; $char[] = 'L'; $char[] = 'M'; $char[] = 'N'; $char[] = 'O'; $char[] = 'P'; $char[] = 'Q'; $char[] = 'R'; $char[] = 'S'; $char[] = 'T'; $char[] = 'U'; $char[] = 'V'; $char[] = 'W'; $char[] = 'X'; $char[] = 'Y'; $char[] = 'Z'; $char[] = '!'; $char[] = '@'; $char[] = '.'; $char[] = '"'; $char[] = "'"; $char[] = '#'; $char[] = ';'; $char[] = '$'; $char[] = '№'; $char[] = "%"; $char[] = '^'; $char[] = ':'; $char[] = '?'; $char[] = '&'; $char[] = "*"; $char[] = '('; $char[] = ')'; $char[] = '-'; $char[] = '_'; $char[] = "+"; $char[] = '='; $char[] = '/'; $char[] = '\\'; $char[] = ","; PHP: $char[] = 'а'; $char[] = 'б'; $char[] = 'в'; $char[] = 'г'; $char[] = 'д'; $char[] = 'е'; $char[] = 'ё'; $char[] = 'ж'; $char[] = 'з'; $char[] = 'и'; $char[] = 'й'; $char[] = 'к'; $char[] = 'л'; $char[] = 'м'; $char[] = 'н'; $char[] = 'о'; $char[] = 'п'; $char[] = 'р'; $char[] = 'с'; $char[] = 'т'; $char[] = 'у'; $char[] = 'ф'; $char[] = 'х'; $char[] = 'ц'; $char[] = 'ч'; $char[] = 'ш'; $char[] = 'щ'; $char[] = 'ъ'; $char[] = 'ы'; $char[] = 'ь'; $char[] = 'э'; $char[] = 'ю'; $char[] = 'я'; $char[] = '1'; $char[] = '2'; $char[] = '3'; $char[] = '4'; $char[] = '5'; $char[] = '6'; $char[] = '7'; $char[] = '8'; $char[] = '9'; $char[] = '0'; $char[] = 'А'; $char[] = 'Б'; $char[] = 'В'; $char[] = 'Г'; $char[] = 'Д'; $char[] = 'Е'; $char[] = 'Ё'; $char[] = 'Ж'; $char[] = 'З'; $char[] = 'И'; $char[] = 'Й'; $char[] = 'К'; $char[] = 'Л'; $char[] = 'М'; $char[] = 'Н'; $char[] = 'О'; $char[] = 'П'; $char[] = 'Р'; $char[] = 'С'; $char[] = 'Т'; $char[] = 'У'; $char[] = 'Ф'; $char[] = 'Х'; $char[] = 'Ц'; $char[] = 'Ч'; $char[] = 'Ш'; $char[] = 'Щ'; $char[] = 'Ъ'; $char[] = 'Ы'; $char[] = 'Ь'; $char[] = 'Э'; $char[] = 'Ю'; $char[] = 'Я'; $char[] = '!'; $char[] = '@'; $char[] = '"'; $char[] = ","; $char[] = "'"; $char[] = '#'; $char[] = ';'; $char[] = '$'; $char[] = '№'; $char[] = "%"; $char[] = '^'; $char[] = ':'; $char[] = '?'; $char[] = '&'; $char[] = "*"; $char[] = '('; $char[] = ')'; $char[] = '-'; $char[] = '_'; $char[] = "+"; $char[] = '='; $char[] = '/'; $char[] = '\\'; $char[] = '.'; PHP: $char[] = 'a'; $char[] = 'b'; $char[] = 'c'; $char[] = 'd'; $char[] = 'e'; $char[] = 'f'; $char[] = 'g'; $char[] = 'h'; $char[] = 'i'; $char[] = 'j'; $char[] = 'k'; $char[] = 'l'; $char[] = 'm'; $char[] = 'n'; $char[] = 'o'; $char[] = 'p'; $char[] = 'q'; $char[] = 'r'; $char[] = 's'; $char[] = 't'; $char[] = 'u'; $char[] = 'v'; $char[] = 'w'; $char[] = 'x'; $char[] = 'y'; $char[] = 'z'; $char[] = 'A'; $char[] = 'B'; $char[] = 'C'; $char[] = 'D'; $char[] = 'E'; $char[] = 'F'; $char[] = 'G'; $char[] = 'H'; $char[] = 'I'; $char[] = 'J'; $char[] = 'K'; $char[] = 'L'; $char[] = 'M'; $char[] = 'N'; $char[] = 'O'; $char[] = 'P'; $char[] = 'Q'; $char[] = 'R'; $char[] = 'S'; $char[] = 'T'; $char[] = 'U'; $char[] = 'V'; $char[] = 'W'; $char[] = 'X'; $char[] = 'Y'; $char[] = 'Z'; $char[] = 'а'; $char[] = 'б'; $char[] = 'в'; $char[] = 'г'; $char[] = 'д'; $char[] = 'е'; $char[] = 'ё'; $char[] = 'ж'; $char[] = 'з'; $char[] = 'и'; $char[] = 'й'; $char[] = 'к'; $char[] = 'л'; $char[] = 'м'; $char[] = 'н'; $char[] = 'о'; $char[] = 'п'; $char[] = 'р'; $char[] = 'с'; $char[] = 'т'; $char[] = 'у'; $char[] = 'ф'; $char[] = 'х'; $char[] = 'ц'; $char[] = 'ч'; $char[] = 'ш'; $char[] = 'щ'; $char[] = 'ъ'; $char[] = 'ы'; $char[] = 'ь'; $char[] = 'э'; $char[] = 'ю'; $char[] = 'я'; $char[] = '1'; $char[] = '2'; $char[] = '3'; $char[] = '4'; $char[] = '5'; $char[] = '6'; $char[] = '7'; $char[] = '8'; $char[] = '9'; $char[] = '0'; $char[] = 'А'; $char[] = 'Б'; $char[] = 'В'; $char[] = 'Г'; $char[] = 'Д'; $char[] = 'Е'; $char[] = 'Ё'; $char[] = 'Ж'; $char[] = 'З'; $char[] = 'И'; $char[] = 'Й'; $char[] = 'К'; $char[] = 'Л'; $char[] = 'М'; $char[] = 'Н'; $char[] = 'О'; $char[] = 'П'; $char[] = 'Р'; $char[] = 'С'; $char[] = 'Т'; $char[] = 'У'; $char[] = 'Ф'; $char[] = 'Х'; $char[] = 'Ц'; $char[] = 'Ч'; $char[] = 'Ш'; $char[] = 'Щ'; $char[] = 'Ъ'; $char[] = 'Ы'; $char[] = 'Ь'; $char[] = 'Э'; $char[] = 'Ю'; $char[] = 'Я'; $char[] = '!'; $char[] = ","; $char[] = '@'; $char[] = '"'; $char[] = "'"; $char[] = '#'; $char[] = ';'; $char[] = '$'; $char[] = '№'; $char[] = "%"; $char[] = '^'; $char[] = ':'; $char[] = '?'; $char[] = '&'; $char[] = "*"; $char[] = '('; $char[] = ')'; $char[] = '-'; $char[] = '_'; $char[] = "+"; $char[] = '='; $char[] = '/'; $char[] = '\\'; $char[] = '.'; Еще раз повторяю, за все последствия с Вашим сервером я ответственности не несу. Вы используете скрипт на свой страх и риск.
Описал бы еще размеры БД для 6 символов, для 7 символов и т.п. Хоть примерно. Считать лень Ты начал статью ты ее и закончи ))
Да нормально все. Не самая быстрая реализация построения РАИНБОУ, но принцип верный. Я бы писал это все в многопотоке, на чем то более низкоуровневом и хранил ы в оракле вместо майсекеля. Но где взять столько места?! З.Ы. Я "курю" или для 6 символов при алфавите = 75 места нужно около 5 TB ??
Неужели это так сложно? 50000000=2.5гб Например ты генерируешь на 100 символов- 100*100*100*100*100*100=1000000000000 1000000000000 / 5000000 = 200000 200000*2.5=500000=ПИЗДЕЦ ГБ
Короче 6 символов при алфавите 75 = 5 ТБ. Брут 6 символову меня проходит за 2 минуты. Не вижу смысла хранить 6,7 символов в БД Думаю стоит начинать где-то с 10. Но ГДЕ ЭТО ХРАНИТЬ )))) Может архивировать это все?! Или распаковка будет занимать дольше времени чем сам перебор?! Есть идеи куда положить этот УГ ?!
Кого ты в блокноте откроешь?! 5 терабайтный файл? И это только для 6 символов(что не актуально впринципе). Для 10 символов файл (БД) будет занимать сотни терабайт. ТЫ их тоже в блокноте откроешь?! Не говоря уже о том где их хранить
Хранить негде. Открыть нечем. Но можно для себя сделать до 4х символов БД eng, rus, eng+rus. Это около 30гб.
У меня 4 символа сбрутится за 20 секунд Нафига занимать 30ГБ ) Не я ж к тебе без притензий Просто открытая дискуссия.