sql >> Databasteknik >  >> RDS >> Mysql

Kryptera lösenord innan du lagrar i databasen?

Även om svaret nedan tekniskt sett fortfarande är korrekt, har php nya rekommendationer när det gäller hashalgoritmerna att använda. Deras rekommendation , från och med php> =5.5.0, är ​​att använda password_hash och lösenordsverifiera funktioner för att hasha och verifiera hashade lösenord. Som en extra fördel inkluderar dessa funktioner automatiskt ett individualiserat salt som en del av den returnerade hashen, så du behöver inte oroa dig för det uttryckligen.

Om du inte bryr dig om att hämta det faktiska lösenordets värde (från databasens krypterade värde), kan du köra en enkelriktad hash-algoritm på det (som sha1). Denna funktion kommer att returnera en specifik längdsträng (hash) som inte kan användas för att hitta den ursprungliga strängen (teoretiskt). Det är möjligt att två olika strängar kan skapa samma hash (kallas en kollision) men detta borde inte vara ett problem med lösenord.
Exempel: $pass =sha1($_REQUEST['pass']);

En sak, för att göra det lite säkrare är att lägga till ett salt i hashen och köra hashfunktionen igen. Detta gör det svårare att generera en lösenordshash på ett skadligt sätt eftersom saltvärdet endast hanteras på serversidan.
Exempel: $pass =sha1(sha1($_REQUEST['pass']).sha1("[email protected] $# (%"));



  1. Kontrollera hur många postförsändelser som finns i kön i Databas Mail i SQL Server (T-SQL)

  2. RSS-generator med cachningsfunktion

  3. Alternativ till LIKE-klausul i Mysql

  4. MySQL-anslutningen förlorad:systemfel:110