<?php

/*
* Gerador de Senha
* Descricao: Gerador de Senha Com Escolha de Tamanho
* Autor:    Antonio Norival Ribeiro Passos
* Contato: tonhopassos@gmail.com
* Data: 01/02/2010
* Modificacao: 01/02/2011
* Versao: 1.0.0.0
* Licenca: Copyright (C) 2011
*/



function gerasenha($tamanho){  
   
   // fita de letras caixa alta
   $caixaalta = "A,B,C,D,E,F,G,H,I,J,L,K,M,N,O,P,Q,R,S,T,U,V,X,W,Y,Z";
   
   // fita de letras caixa baixa
   $caixbaixa = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,w,y,z";
   
   // fita de numeros
   $numero = "1,2,3,4,5,6,7,8,9,0";
   
   // fita de simbolos
   $simbolo = "!,@,#,$,%,&,*,(,),{,[,},],^,~,-,_,=,+,/,?,;,:,>,\,<,|";
   
   // monta uma string com todas as fitas
   // aqui pode definir a porcentagem de carcacteres ,bastantando concatena mais a fita desejada
   $senha = $caixaalta.$numero.$caixbaixa.$simbolo;
   
   // transforma a string em array
   $array = explode(",", $senha);
   
   // embaralha o array
   shuffle($array);  
   
   // transforma o arry em string
   $senha = implode($array, ""); 
   
   // retorna o tamanho da senha desejada
   $senhagerada = substr($senha, 0, $tamanho);
   return $senhagerada;  
} 

$senha = gerasenha(5);
echo "Senha eh: <strong>" . $senha."</strong>";