Един метод без използване на „Защитеното външно хранилище на пароли“ (каквото и да е то) е да добавите колона RAW(16) към таблицата за съхраняване на хеширани потребителско име и парола:
alter table mytable add password raw(16);
След това запазете хешираните потребителско име и парола в него по следния начин:
insert into mytable (username, password, ...)
values (:username, dbms_obfuscation_toolkit.md5
(input => utl_i18n.string_to_raw
(upper(:username)||:password))
);
След това, когато потребител се опита да влезе с потребителско име и парола, можете да ги проверите по следния начин:
select 'OK'
from mytable
where username = :username
and password = dbms_obfuscation_toolkit.md5
(input => utl_i18n.string_to_raw
(upper(:username)||:password));
По този начин никой не може да разбере каква е съхранената парола (освен чрез груба сила).