Ao produzir um modulo para meu sistema precisei confeccionar uma função que pudesse me retornar uma senha aleatória para os cadastros de clientes e vendedores que acessam o mesmo.
Usando Clipper eu sei que posso encontrar zilhões destas funções em várias LIBs mas usando Harbour o tempo me diz que é melhor criar.
Portanto esta aà e seu uso é simples bastando passar os parametros:
Tamanho - tamanho da senha retornada 6, 8 ou que que desejar
Tipo - tipo da senha retornada 1-Numerica, 2-Alfanumérica e 3-Alfabética
Código
Function GerarSenha(MaxNum,Tipo)
* 1 = Somente Numeros
* 2 = Numero e Letras
* 3 = Somente Letras
local chave := ""
var_valores := { "0123456789",;
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",;
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" }[Tipo]
for i = 1 to MaxNum
num := random(len(var_valores))
chave := chave + substr(var_valores,num,1)
next
return lTrim(chave)
function Random( nMaximo )
static nRandom
local nTemporal
nMaximo = if( nMaximo == NIL, 65535, nMaximo )
if nRandom == NIL
nRandom = seconds()
endif
nTemporal = ( nRandom * seconds() ) % ( nMaximo + 1 )
nRandom = nTemporal + seconds()
RETURN int( nTemporal )