sql >> Database >  >> RDS >> Oracle

wachtwoordveld maken in oracle

Een methode zonder gebruik te maken van "The Secure External Password Store" (wat dat ook mag zijn) is om een ​​RAW(16)-kolom aan de tabel toe te voegen om een ​​gehashte gebruikersnaam en wachtwoord op te slaan:

alter table mytable add password raw(16);

Sla vervolgens de gehashte gebruikersnaam en het wachtwoord als volgt op:

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

Wanneer een gebruiker vervolgens probeert in te loggen met een gebruikersnaam en wachtwoord, kunt u deze als volgt controleren:

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

Op deze manier kan niemand erachter komen wat het opgeslagen wachtwoord is (behalve door brute kracht).



  1. Django/MySQL-site instellen om UTF-8 te gebruiken

  2. Doe mee aan vier tabellen met LEFT JOIN zonder duplicaten

  3. Hoe een IPv6-compatibel adres op te slaan in een relationele database

  4. heroku db-verbinding geweigerd