Futuraweb, extend you brand online

Questa semplice funzione genera delle password randomizzate in base ad un pattern specificat. Possiamo specificare cioe’ se un particolare carattere della password sara’ un numero, una lettera maiuscola, una lettera minuscola o un carattere invariabile.

Per esempio se vogliamo generare una password numerica di 4 cifre il pattern sara’:

####

Se invece vogliamo una password generica

****

e cosi’ via.

<?php
//
// TAPassword 1.0
// Alessandro 20050915
//
// $pattern : pattern della password
// C : lettera maiuscola
// c : lettera minuscola
// L : qualunque lettera, maiuscola o minuscola
// # : numero
// * : qualunque carattere maiuscolo o minuscolo o numero
// e.g. TAPassword('CC-cc-##');
//
function TAPassword($pattern)
{
	$CHAR = 'QWERTYUIOPASDFGHJKLZXCVBNM';
	$char = 'qwertyuiopasdfghjklzxcvbnm';
	$num = '0123456789';

	$password = '';

	for ($i = 0; $i < strlen($pattern); $i++)
	{
		switch ($pattern[$i]) {
			case '#':
				$rnd_number = rand(0, (strlen($num)-1));
				$password.=$num[$rnd_number];
				break;
			case 'C':
				$rnd_number = rand(0, (strlen($CHAR)-1));
				$password.=$CHAR[$rnd_number];
				break;
			case 'c':
				$rnd_number = rand(0, (strlen($char)-1));
				$password.=$char[$rnd_number];
				break;
			case 'L':
				$temp = $char.$CHAR;
				$rnd_number = rand(0, (strlen($temp)-1));
				$password.=$temp[$rnd_number];
				break;
			case '*':
				$temp = $char.$CHAR.$num;
				$rnd_number = rand(0, (strlen($temp)-1));
				$password.=$temp[$rnd_number];
				break;
			default:
				$password.= $pattern[$i];
				break;
		}
	}

	return $password;
}
?>

Leave a Reply