MD5 en Oracle 8i
Por cuestiones del trabajo, hace poco hubo la necesidad de generar el MD5 de cierta información, nos topamos con que en Oracle 8i, es todo un teatrito crear un MD5 en modo hexadecimal(que al final de cuentas ni lo fue tanto), Así que me anoto aqui un StoredProc que realiza dicho cálculo y lo pasa a formato String:
procedure pGeneraMD5( pDatos varchar2 ) is
vlDatos varchar2(100);
vlMD5Raw RAW(16);
begin
vlDatos := pDatos;
vlMD5Raw := DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT=>utl_raw.cast_to_raw(vlDatos));
SELECT RAWTOHEX(vlMD5Raw) INTO vlDatos FROM DUAL;
dbms_output.put_line(vlDatos);
end pGeneraMD5;
si el MD5 se guarda como RAW y no lo pasamos a Hex o String, es un medio perfecto para almacenar passwords y data que necesite ser encriptada, aunque esto no quiere decir que el esten en Hex o String no sean medios adecuados.




2 comentarios:
Muchisimas! Muchisimas! Muchiiiiiiiiiiiiiisimas gracias!
No sabes lo que loco que me he vuelto buscando y una solución a esto mismo.
Gracias otra vez!
Hola,
Tu ejemplo encripta un password en MD5 y lo pasa a Hexadecimal. Si lo que quiero es autenticar un usuario usando el password que tiene ese usuario en Oracle, ¿cómo hago para comparar ese password con el de la vista DBA_USERS? Te lo pregunto porque el que obtengo es de 32 caracteres y el del usuario de Oracle de 16 caracteres.
Muchas gracias.
Publicar un comentario en la entrada