viernes, febrero 01, 2008

Manejo de contraseñas en Genexus


Genexus cuenta con dos funciones para la encriptación y desencriptación de strings. Por ejemplo si queremos almacenar en un campo las contraseñas de los usuarios con su correspondiente nombre de usuario, es posible darle cierto nivel de seguridad encriptandolas mediante la función encrypt64(). Veamos un ejemplo para aclarar su funcionamiento:

&KeyGen = getencryptionkey()
new
Key = &KeyGen
Pas = encrypt64(&Pas,&KeyGen)
endnew
Key y Pas con campos de una tabla. La variable &KeyGen contiene una clave establecida por un genereador pseudoaleatorio de Genexus e implementada mediante la funcion getencryptionkey(). Dicho sea de paso el uso de esta función es obligatorio para la posterior encriptación de una cadena de caracteres. Por esta razón se almacena en el campo "Key" la clave generada por Genexus. Luego la función encrypt64() tiene como parámetro la variable &Pas que es la cadena que queremos encriptar y la variable &KeyGen. En base a estas dos Variables Genexus construye una clave encriptada.Otro elemento a tener en cuenta en el manejo de claves es que en el momento de ingresar la clave esta debe permanecer invisible para el usuario quien solo debe poder ver un asterisco por cada tecla pulsada. Esto se logra colocando en las reglas del workpanel en cual se ingresa la clave lo siguiente:

color('x,x', &Pas);
De esta manera se obtendrá que en el ingreso de la clave sólo se observarán asteriscos en lugar de la clave propiamente dicha.

No hay comentarios.: