On Tue, 2003-06-17 at 02:45, Davy Obdam wrote: > Hi people, > > I have to make a password generator, but i have a little problem. > > - It needs to generate password 8 characters long, and including 1 or 2 > special characters(like #$%&*@). > - Those special characters can never appear as the first or last > character in the string... anywhere between is fine. > > I have a password generator script now that does the first thing... but > the special character can be in front or back of the string wich it > shouldnt.. i have been looking on the web for this but i havent found > the answer. Below is my scripts so far.. > > Any help is appreciated, thanks for your time, > > Best regards, > > Davy Obdam
Please don't crosspost. Pick the suitable list (in this case, it would have been php-general). Anyway, just tell it not to use anything beyone the first 26 characters of your allowable characters string. Below is one way to do it. Good luck, Torben <?php error_reporting(E_ALL); ini_set('display_errors', true); // A function to generate random alphanumeric passwords in PHP // It expects to be passed a desired password length, but it // none is passed the default is set to 8 (you can change this) function generate_password($length = 8) { // This variable contains the list of allowable characters // for the password. Note that the number 0 and the letter // 'O' have been removed to avoid confusion between the two. // The same is true of 'I' and 1 $allowable_characters = 'abcdefghefghijklmnopqrstuvwxyz0123456789%#*&'; // We see how many characters are in the allowable list $ps_len = strlen($allowable_characters); // Max index of the characters allowed to stand and end the output. $max_endpoint_ind = 25; // 0-based index of the last char of the output $last_char = $length - 1; // Seed the random number generator with the microtime stamp // (current UNIX timestamp, but in microseconds) mt_srand((double)microtime() * 1000000); // Declare the password as a blank string. $pass = ""; // Loop the number of times specified by $length for($i = 0; $i < $length; $i++) { // Each iteration, pick a random character from the // allowable string and append it to the password. switch ($i) { case 0: case $last_char: $pass .= $allowable_characters{mt_rand(0, $max_endpoint_ind)}; break; default: $pass .= $allowable_characters{mt_rand(0, $ps_len)}; } } // Retun the password we've selected return $pass; } for ($i = 0; $i < 100; $i++) { echo generate_password() . "\n"; } ?> -- Torben Wilson <[EMAIL PROTECTED]> +1.604.709.0506 http://www.thebuttlesschaps.com http://www.inflatableeye.com http://www.hybrid17.com http://www.themainonmain.com -----==== Boycott Starbucks! http://www.haidabuckscafe.com ====----- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php