sql >> Database teknologi >  >> RDS >> Mysql

Kryptere adgangskode før lagring i database?

Mens svaret nedenfor teknisk set stadig er korrekt, har php nye anbefalinger med hensyn til hashing-algoritmerne, der skal bruges. Deres anbefaling , fra php> =5.5.0, er at bruge password_hash og password_verify funktioner til at hash og verificere hashed adgangskoder. Som en ekstra fordel inkluderer disse funktioner automatisk et individualiseret salt som en del af den returnerede hash, så du behøver ikke at bekymre dig eksplicit om det.

Hvis du er ligeglad med at hente den faktiske adgangskodes værdi (fra den databasekrypterede værdi), kan du køre en envejs-hash-algoritme på den (såsom sha1). Denne funktion vil returnere en specifik længde streng (hash), som ikke kan bruges til at finde den originale streng (teoretisk). Det er muligt, at to forskellige strenge kunne skabe den samme hash (kaldet en kollision), men dette burde ikke være et problem med adgangskoder.
Eksempel: $pass =sha1($_REQUEST['pass']);

En ting, for at gøre det lidt mere sikkert, er at tilføje et salt til hashen og køre hash-funktionen igen. Dette gør det sværere at generere en adgangskode-hash ondsindet, da saltværdien kun håndteres på serversiden.
Eksempel: $pass =sha1(sha1($_REQUEST['pass']).sha1("[email protected] $# (%"));



  1. Download en kopi af din database

  2. php og mysql kopiere post fra en tabel til en anden

  3. SQL TRUNCATE-syntaks – Listet efter DBMS

  4. MySQL Vælg forskellige værdier fra 2 kolonner