Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

tạo trường mật khẩu trong oracle

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).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về Oracle WHILE LOOP

  2. ORA-1114 đang chạy Datapatch

  3. Cách giải quyết ORA-06512 tại số dòng

  4. PLS-00103:Gặp biểu tượng END khi mong đợi + &=, v.v.

  5. ORA-00903:tên bảng không hợp lệ trên PreparedStatement