Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 310
  • Last Modified:

Create a temporary password using given characters

I want to be able to create a password using given characters and length.

i.e.
$Characters = "abcGTH123_%&$";
$Length = 8;

PHP code to do it

Any ideas?
0
dnotestine
Asked:
dnotestine
3 Solutions
 
codeQuantumCommented:

<?php
 
$pass = "";
$Characters = "abcGTH123_%&$";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 8) {
	$num = rand() % strlen($Characters);
	$tmp = substr($Characters, $num, 1);
	$pass = $pass . $tmp;
	$i++;
}
// see result
echo $pass;
?>

Open in new window

0
 
Rob SiklosCommented:

$numSourceChars = strlen($Characters);
$result = "";
for ($i = 0; $i < $Length; $i++) {
    $result .= substr($Characters, rand(1, $numSourceChars)-1, 1);
}

Open in new window

0
 
codeQuantumCommented:
Note that the script is a refined version of the one found here :

http://www.issociate.de/board/post/184271/Random_Character_String.html

Fixed a small mistake with length :
<?php
 
// configuration
$Characters = "abcGTH123_%&$";
$Length = 8;
 
// generation
$pass = "";
srand((double)microtime()*1000000);
$i = 0;
while ($i < $Length) {
	$num = rand() % strlen($Characters);
	$tmp = substr($Characters, $num, 1);
	$pass = $pass . $tmp;
	$i++;
}
// see result
echo $pass;
 
?>

Open in new window

0
 
pddCommented:

function generatePass ($length = 8, $chars = "abcGTH123_%&$") {
	$string = "";
	for ($i=0;$i<$length;$i++) {
		$string .= $chars[rand(0, strlen($chars)-1)];
	}
	return $string;
}
 
print generatePass();

Open in new window

0
 
dnotestineAuthor Commented:
Thanks to everyone - All were good examples
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now