TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
Advertisement
Associates
Associates
techtuts Darkmindz
CSS Tutorials Tutorialsphere.com - Free Online Tutorials
Boston PHP SurfnLearn
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 12-10-2007, 02:38 PM   #1 (permalink)
The Wanderer
 
Rizza's Avatar
 
Join Date: Dec 2007
Location: Orlando, FL
Posts: 23
Thanks: 0
Rizza is on a distinguished road
Default Password generator

Figured I'd give away my password generator.

PHP Code:
public function generatePassword($length 10) {
    
// Build an arrays of consonants and vowels
    
$consSingle str_split('bcdghjklmnprstuvw');
    
$consDouble str_split('trcrbrfrthdrchphwrstspswprslcl'2);
    
$cons       array_merge($consSingle$consDouble);
    
$vowels     str_split('aeiou');
    
$numbers    = array(1234567890);
    
    
// Create the random password
    
$password '';
    
srand((double) microtime() * 1000000);
    for (
$i 0$i $length$i++) {
        
// Alternate between upper and lower case
        
$casing = (rand(01))? 'strtoupper' 'strtolower';
        
        
// Construct the password by a series of constanent + number + vowel.
        
$password .= (
            
$casing($consmt_rand(031) ])
            . 
$numbersmt_rand(09) ]
            . 
$casing($vowelsmt_rand(04) ])
        );
    }
    
    
// Cut string and return password to correct length
    
return substr($password0$length);

Usage:

PHP Code:
$pass generatePassword();
$enc md5('pew! pew! pew!' $pass); 
Rizza is offline  
Reply With Quote
The Following User Says Thank You to Rizza For This Useful Post:
Wildhoney (12-10-2007)
Old 12-10-2007, 07:18 PM   #2 (permalink)
The Gregarious
Top Contributor 
 
Village Idiot's Avatar
 
Join Date: Sep 2007
Posts: 593
Thanks: 15
Village Idiot is on a distinguished road
Default

Wouldn't it be easier just to output random characters? That way you could choose length and mix caps. MD5 outputs 35 chars, thats longer then most people have for passwords.
__________________
There are two ways to write bug-free code, only the third one works.
Village Idiot is offline  
Reply With Quote
Old 12-10-2007, 08:53 PM   #3 (permalink)
Jay
The Contributor
Good Samaritan 
 
Join Date: Dec 2007
Posts: 53
Thanks: 5
Jay is on a distinguished road
Default

Avoid using str_split when you don't have to.. initializing the array yourself is a lot more efficient. str_split, and other methods that take care of initiliazing, were made for the manipulation of un-controllable data and such.

And as VI already said.. Just do random letters! Use uniqid() and MD5

PHP Code:
$pass substrmd5uniqidmt_rand(), true ) ), 0mt_rand512 ) ); 
Jay is offline  
Reply With Quote
Old 12-10-2007, 10:21 PM   #4 (permalink)
La Vida es Sueño
Advanced Programmer Top Contributor 
 
Wildhoney's Avatar
 
Join Date: Sep 2007
Location: Oldham
Posts: 1,587
Thanks: 72
Wildhoney is on a distinguished road
Default

Can I just say that MD5 actually outputs string of 32 characters, not 35.
__________________
The man who comes back through the Door in the Wall will never be quite the same as the man who went out.
Send a message via AIM to Wildhoney Send a message via MSN to Wildhoney Send a message via Yahoo to Wildhoney
Wildhoney is online now  
Reply With Quote
Old 12-11-2007, 02:47 AM   #5 (permalink)
The Gregarious
Top Contributor 
 
Village Idiot's Avatar
 
Join Date: Sep 2007
Posts: 593
Thanks: 15
Village Idiot is on a distinguished road
Default

Quote:
Originally Posted by Wildhoney View Post
Can I just say that MD5 actually outputs string of 32 characters, not 35.
I should really consider learning how to count one of these days...
__________________
There are two ways to write bug-free code, only the third one works.
Village Idiot is offline  
Reply With Quote
Old 12-11-2007, 04:29 AM   #6 (permalink)
The Acquainted
 
Join Date: Sep 2007
Location: Arizona
Posts: 114
Thanks: 10
Andrew is on a distinguished road
Default

You could just use md5() on time() and then randomly pick a 10-char sequence from the resulting hash.. though, I'm not sure how easily that could result in duplicates (HIGHLY unlikely, though).
Send a message via AIM to Andrew Send a message via MSN to Andrew
Andrew is offline  
Reply With Quote
Old 12-11-2007, 05:04 AM   #7 (permalink)
Jay
The Contributor
Good Samaritan 
 
Join Date: Dec 2007
Posts: 53
Thanks: 5
Jay is on a distinguished road
Default

You can use a lot of things..

PHP Code:
$pass substrmd5mt_rand() ), 0mt_rand612 ) );
$pass substruniqidmt_rand(), true ), 0mt_rand612 ) );
// it goes on and on xD 
Jay is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 11:22 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0