Etiqueta

01 julio 2015

Función para la generación de contraseñas

La función permite ser invocada con o sin parámetro del modo siguiente:

    Do method $PassGen() Returns Password

Por ejemplo devolvería: Password = x32Vn1

o mediante la especificación un parámetro con la longitud deseada:

    Do method $PassGen(4) Returns Password

Por ejemplo devolvería: Password = 4cB3

Definición de la función:

;  autor        ;; Florent Pousserot
;  método       ;; $PassGen
;  descripción  ;; Generación aleatoria de contraseñas
;  parametros   ;; Parametro 1: Longitud de la contraseña deseada.

                   Por defecto 6 caracteres
;  devuelve     ;; La contraseña generada

Do zlCharAuthorize.$define('char')

For x from 48 to 57 step 1     ;; códigos ascii [0-9]
    Do zlCharAuthorize.$add(chr(x))
End For

For x from 97 to 122 step 1     ;; códigos ascii [a-z]
    Do zlCharAuthorize.$add(chr(x))
End For

For x from 1 to pcPassLength step 1
    Calculate zlCursor as randrealrng(1,36)     ;; devuelve un valor aleatorio entre 1 y 36 ; representa [0-9,a-z] <=> [10+26]
    If mod(x,3)     ;; modulo 3
        Calculate zcPassword as con(zcPassword,zlCharAuthorize.[zlCursor].C1)     ;; minúscula
    Else
        Calculate zcPassword as con(zcPassword,upp(zlCharAuthorize.[zlCursor].C1))     ;; mayúscula
    End If
End For

Quit method zcPassword

No hay comentarios: