Генерация паролей

  • Автор темы Автор темы Quest
  • Дата начала Дата начала

Quest

Guest
Генерация паролей

Возникла идиотская идея - составить функцию для генерации паролей...Вот подумал - а каким образом можно генерить пароли ??? Возможно - запихать все возможные печатные символы в массив, а потом путем случайной выборки составлять комбинации паролей. По моим расчетам при использований только латинского алфавита (с учетом регистра) и цифр - при длине пароля до 10 цифр - совокупность всех вариантов будет несколько десятков триллионов комбинаций, а может и того больше. Но идея до конца не проработана... Каким образом выбирать элементы массива а потом складывать его по символам в комбинацию??? и как нужно регулировать длину пароля ??? А может есть более простые и аккуратные решения ???
 
md5 - подходит только для шифрования паролей, но никак для их генераций )))
 
md5 - подходит только для шифрования паролей, но никак для их генераций )))
Почему?
генерируй себе сколько захочешь, обрезай нужное кол-во символов.... и вперед =)
 
md5 всегда выдает 32 символьную комбинацию - кроме того там участвуют не все буквы латинского алфавита... Наверное не совсем ясна суть проблемы .. мне нужно создавать новые пароли .. md5 для этого ТОЧНО НЕ ПОДХОДИТ !!!!
 
генерировать пароль

почитай, много интересного узнаешь и как раз найдешь для себя подходящую функцию.
 
Спасибо ... в принципе то что я искал, и примерно в том же русле моих мыслей... md5 как выясняется из того постинга действительно "не совсем подходит" для этой идей....
 
Вот, я так сделал:
function PassGen()
{
for($i=0; $i<6; $i++)
{
$password.=rand(0,9);
}
return $password;
}

Делай себе нужной длины. Кто их взламывать будет (скорее просто перебирать)

А если пароли тебе нужны для защиты/доступа к супер-пупер-мега секретной информации, то тогда ясно надо использовать криптостойкие алгоритмы, которые ШИФРУЮТ пароль, после чего его фиг узнаешь (но это уже не твоя проблема. Это вопрос к алгоритму кодирования)
 
PHP:
function GetPassword($passwordLength=8)
{
return substr(base64_encode(crypt(microtime())),rand(1,45-$passwordLength),$passwordLength);
}

:)))
 
PHP:
function GetPassword($passwordLength=8) { 
    return substr(base64_encode(md5(crypt(microtime()))),rand(1,45-$passwordLength),$passwordLength); 
}
updated version.
 
Автор оригинала: nagash
PHP:
function GetPassword($passwordLength=8) { 
    return substr(base64_encode(md5(crypt(microtime()))),rand(1,45-$passwordLength),$passwordLength); 
}
updated version.
Ну блин, покатило... Люди, различайте генерацию паролей от их кодирования (шифрирования).
Допустим меня просят придумать пароль для моего нового почтового ящика. Я "придумал" пароль "666666". Считай сгенерировал. Таким я и буду его использовать. Если нехороший чкловек захочет посмотреть мои письма, то он легко может не взломать мой почтовый ящик, а просто перебпать все варианты, что очень просто. Люди склонны придумывать пароли со смыслом, поетому можно использовать какую-то базу слов, что с успехом делал вирус Морриса.

Чтобы такого не было, я могу этот пароль зашифровать с помощью известных алгоритмов, коим является md5. И тогда будь то "666666" или "!№%Klo", тот же хрен, так как ты его просто не узнаешь, не раскодировав. Это и делает твоя функция. Топик заключался в генерации паролей, а не в их кодировании. Так что тут чуток отошли от темы.
 
>Люди, различайте генерацию паролей от их кодирования (шифрирования).
ты не понял.
это и есть "генерация случайной строки" ака пароля.
 
Коля
Незнаю, чего ты так разошелся, но md5 нормально подходит для генерации пароля.
Что для пароля надо - последовательность букв/цифр желательно в разных регистрах.

Берем случайное число (побольше), шифруем его md5 => получаем нечто, длинной 32 байта, смостоящее из букв в разных регистрах и цифр. Теперь случайным образом вырезаем из этих 32 байт комбинацию нужной длинны - вуаля, пароль готов.

Шанс получить такой-же пароль вторично - ничтожен(в квадрате)

Для тех, кто не любит md5 - спецом изобретено колесо
PHP:
function GeneratePassword($pwd_length,$allowed_chars = "")
{
 if($allowed_chars == "")$allowed_chars = "abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&_";
 for($i=0; $i<strlen($allowed_chars); $i++)
   {
     $tmp_chars = substr($allowed_chars,$i);
     $tmp_char = substr($tmp_chars,0,1);
     $allowed[] = $tmp_char;
   }
 
 for($i=0; $i<$pwd_length; $i++)
   {
     $password .= ( rand(0,2) > 1 ? strtoupper($allowed[rand(0,sizeof($allowed))]) : $allowed[rand(0,sizeof($allowed))]);
   
   }

return $password;
}
 
Генератор PHP паролей! :D :D :D
PHP:
function make_seed() {
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}

function GenPhpPasswd() {	   
	   $functions=implode(' ',file("http://ru.php.net/manual/en/index.functions.php"));	   	   
	   preg_match_all("/>(\w*)([^<].*)<\/B/",$functions,$words);
     $words=$words[1];
     $shit=array('!','~','@','#','$','%');
     srand(make_seed());
     $first_word=$words[rand(0,sizeof($words)-1)];     
     srand(make_seed());
     $second_word=$words[rand(0,sizeof($words)-1)];
     srand(make_seed());
     if (rand()%2) {
     	   $index=rand(0,sizeof($first_word));
     	   $first_word[$index]=strtoupper($first_word[$index]);
     	   $second_word[rand(0,sizeof($second_word)-1)]=rand(0,9);
     } else {     	  
     	   $index=rand(0,sizeof($second_word)-1);
     	   $second_word[$index]=strtoupper($second_word[$index]);
     	   $first_word[rand(0,sizeof($first_word)-1)]=rand(0,9);     
     }     
     srand(make_seed());     
     return $first_word.$shit[rand(0,sizeof($shit)-1)].$second_word;              
}
 
А как насчет варианта когда автоматически генерятся все возможные варианты паролей и записываются к примеру в файл, плюс генерации всех возможных паролей длинно й в 3 символа, начинается генерация - длинной в четыре и т.д ????
 
совершенно непонятный вариант...
но кто тебе мешает его воплотить в жизнь? =)
займись!
 
Сверху