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

Quest

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

Возникла идиотская идея - составить функцию для генерации паролей...Вот подумал - а каким образом можно генерить пароли ??? Возможно - запихать все возможные печатные символы в массив, а потом путем случайной выборки составлять комбинации паролей. По моим расчетам при использований только латинского алфавита (с учетом регистра) и цифр - при длине пароля до 10 цифр - совокупность всех вариантов будет несколько десятков триллионов комбинаций, а может и того больше. Но идея до конца не проработана... Каким образом выбирать элементы массива а потом складывать его по символам в комбинацию??? и как нужно регулировать длину пароля ??? А может есть более простые и аккуратные решения ???
 

Quest

Guest
md5 - подходит только для шифрования паролей, но никак для их генераций )))
 

Romantik

TeaM PHPClub
md5 - подходит только для шифрования паролей, но никак для их генераций )))
Почему?
генерируй себе сколько захочешь, обрезай нужное кол-во символов.... и вперед =)
 

Quest

Guest
md5 всегда выдает 32 символьную комбинацию - кроме того там участвуют не все буквы латинского алфавита... Наверное не совсем ясна суть проблемы .. мне нужно создавать новые пароли .. md5 для этого ТОЧНО НЕ ПОДХОДИТ !!!!
 

Romantik

TeaM PHPClub
генерировать пароль

почитай, много интересного узнаешь и как раз найдешь для себя подходящую функцию.
 

Quest

Guest
Спасибо ... в принципе то что я искал, и примерно в том же русле моих мыслей... md5 как выясняется из того постинга действительно "не совсем подходит" для этой идей....
 

Коля

Guest
Вот, я так сделал:
function PassGen()
{
for($i=0; $i<6; $i++)
{
$password.=rand(0,9);
}
return $password;
}

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

А если пароли тебе нужны для защиты/доступа к супер-пупер-мега секретной информации, то тогда ясно надо использовать криптостойкие алгоритмы, которые ШИФРУЮТ пароль, после чего его фиг узнаешь (но это уже не твоя проблема. Это вопрос к алгоритму кодирования)
 

fixxxer

К.О.
Партнер клуба
PHP:
function GetPassword($passwordLength=8)
{
return substr(base64_encode(crypt(microtime())),rand(1,45-$passwordLength),$passwordLength);
}
:)))
 

nagash

Guest
PHP:
function GetPassword($passwordLength=8) { 
    return substr(base64_encode(md5(crypt(microtime()))),rand(1,45-$passwordLength),$passwordLength); 
}
updated version.
 

Коля

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

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

tony2001

TeaM PHPClub
>Люди, различайте генерацию паролей от их кодирования (шифрирования).
ты не понял.
это и есть "генерация случайной строки" ака пароля.
 

IntenT

SkyDiver
Коля
Незнаю, чего ты так разошелся, но 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;
}
 

HabaHaba

Новичок
Генератор 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;              
}
 

Quest

Guest
А как насчет варианта когда автоматически генерятся все возможные варианты паролей и записываются к примеру в файл, плюс генерации всех возможных паролей длинно й в 3 символа, начинается генерация - длинной в четыре и т.д ????
 

nagash

Guest
совершенно непонятный вариант...
но кто тебе мешает его воплотить в жизнь? =)
займись!
 
Сверху