sql >> Database teknologi >  >> RDS >> Oracle

oprettelse af adgangskodefelt i oracle

En metode uden at bruge "The Secure External Password Store" (hvad det end måtte være) er at tilføje en RAW(16) kolonne til tabellen for at gemme et hashed brugernavn og adgangskode:

alter table mytable add password raw(16);

Gem derefter det hashkrypterede brugernavn og adgangskode i den sådan her:

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

Når en bruger derefter forsøger at logge ind med et brugernavn og en adgangskode, kan du kontrollere dem på denne måde:

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

På denne måde kan ingen finde ud af, hvad den lagrede adgangskode er (ud over brute force).



  1. 'fetch' i PDO får kun ét resultat

  2. Trin til installation af Mysql56 på linux

  3. Hvordan stopper/dræber man en forespørgsel i postgresql?

  4. Implementering af et både, enten-eller, men ikke null-krav i en database