Oracle
 sql >> Baza danych >  >> RDS >> Oracle

tworzenie pola hasła w Oracle

Jedną z metod bez korzystania z „Bezpiecznego zewnętrznego magazynu haseł” (niezależnie od tego, co to może być) jest dodanie kolumny RAW(16) do tabeli w celu przechowywania zaszyfrowanej nazwy użytkownika i hasła:

alter table mytable add password raw(16);

Następnie zapisz w nim zaszyfrowaną nazwę użytkownika i hasło w następujący sposób:

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

Następnie, gdy użytkownik próbuje się zalogować za pomocą nazwy użytkownika i hasła, możesz je sprawdzić w ten sposób:

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

W ten sposób nikt nie może dowiedzieć się, jakie jest przechowywane hasło (poza brutalną siłą).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błędy Addnode resolv.conf

  2. Najlepsze 2 oferty z sumą wszystkich ofert

  3. Oracle REGEXP_REPLACE ciąg zastępujący wielkie litery

  4. Czy mogę mieć ograniczenie dotyczące liczby odrębnych wartości w kolumnie w SQL?

  5. Jak wybrać kolumny z tabeli, które nie mają wartości null?