Một phương pháp mà không cần sử dụng "Kho lưu trữ mật khẩu bên ngoài an toàn" (bất kỳ điều gì có thể có) là thêm cột RAW (16) vào bảng để lưu trữ tên người dùng và mật khẩu được băm:
alter table mytable add password raw(16);
Sau đó, lưu trữ tên người dùng và mật khẩu đã băm trong đó như thế này:
insert into mytable (username, password, ...)
values (:username, dbms_obfuscation_toolkit.md5
(input => utl_i18n.string_to_raw
(upper(:username)||:password))
);
Sau đó, khi người dùng cố gắng đăng nhập bằng tên người dùng và mật khẩu, bạn có thể kiểm tra chúng như sau:
select 'OK'
from mytable
where username = :username
and password = dbms_obfuscation_toolkit.md5
(input => utl_i18n.string_to_raw
(upper(:username)||:password));
Bằng cách này, không ai có thể tìm ra mật khẩu được lưu trữ là gì (ngoại trừ bằng cách sử dụng bạo lực).