sql >> Base de Datos >  >> RDS >> Oracle

creando un campo de contraseña en oracle

Un método sin usar "El almacén externo seguro de contraseñas" (sea lo que sea) es agregar una columna RAW(16) a la tabla para almacenar un nombre de usuario y una contraseña con hash:

alter table mytable add password raw(16);

Luego almacene el nombre de usuario y la contraseña con hash de esta manera:

insert into mytable (username, password, ...)
values (:username, dbms_obfuscation_toolkit.md5 
                      (input => utl_i18n.string_to_raw
                                  (upper(:username)||:password))
       );

Luego, cuando un usuario intente iniciar sesión con un nombre de usuario y contraseña, puede verificarlos de esta manera:

select 'OK'
from   mytable
where  username = :username
and    password = dbms_obfuscation_toolkit.md5 
                      (input => utl_i18n.string_to_raw
                                  (upper(:username)||:password));

De esta manera, nadie puede averiguar cuál es la contraseña almacenada (a menos que sea por fuerza bruta).