sql >> Database >  >> RDS >> Mysql

Wachtwoord coderen voordat u het in de database opslaat?

Hoewel het onderstaande antwoord technisch nog steeds correct is, heeft php nieuwe aanbevelingen met betrekking tot de te gebruiken hash-algoritmen. Hun aanbeveling , vanaf php> =5.5.0, is het gebruik van de password_hash en password_verify functies om gehashte wachtwoorden te hashen en te verifiëren. Als bijkomend voordeel bevatten deze functies automatisch een geïndividualiseerd zout als onderdeel van de geretourneerde hash, dus u hoeft zich daar niet expliciet zorgen over te maken.

Als het u niet uitmaakt om de werkelijke waarde van het wachtwoord op te halen (van de versleutelde waarde van de database), kunt u er een eenrichtings-hash-algoritme op uitvoeren (zoals sha1). Deze functie retourneert een string met een specifieke lengte (hash) die niet kan worden gebruikt om de originele string (theoretisch) te vinden. Het is mogelijk dat twee verschillende strings dezelfde hash kunnen creëren (een botsing genoemd), maar dit zou geen probleem moeten zijn met wachtwoorden.
Voorbeeld: $pass = sha1($_REQUEST['pass']);

Een ding, om het een beetje veiliger te maken, is door een zout aan de hash toe te voegen en de hash-functie opnieuw uit te voeren. Dit maakt het moeilijker om kwaadwillig een wachtwoord-hash te genereren, aangezien de salt-waarde alleen aan de serverzijde wordt verwerkt.
Voorbeeld: $pass = sha1(sha1($_REQUEST['pass']).sha1("[email protected]$#(%"));



  1. MySQL:kan SIGNAL niet gebruiken in Trigger

  2. InnoDB prestatie tweaks

  3. Op tijd gebaseerde prioriteit in Active Record Query

  4. SELECT INTO Variabele in MySQL DECLARE veroorzaakt syntaxisfout?