sql >> Databasteknik >  >> RDS >> Oracle

skapa lösenordsfält i oracle

En metod utan att använda "The Secure External Password Store" (vad det än kan vara) är att lägga till en RAW(16) kolumn i tabellen för att lagra ett hashat användarnamn och lösenord:

alter table mytable add password raw(16);

Lagra sedan det hashade användarnamnet och lösenordet så här:

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

När en användare sedan försöker logga in med ett användarnamn och lösenord kan du kontrollera dem så här:

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

På så sätt kan ingen ta reda på vad det lagrade lösenordet är (annat än med brute force).



  1. Infoga data om antalet rader är större än 0 fungerar inte

  2. Ersätt tabellnamn med variabel. Använder python och mysql-anslutningen

  3. Hur undviker man fragmentering när man använder NHibernate guid.comb primärnyckel i MySQL?

  4. Exportera SQL-frågedata till Excel