sql >> Databáze >  >> RDS >> Mysql

Zašifrovat heslo před uložením do databáze?

Zatímco odpověď níže je technicky stále správná, php má nová doporučení, pokud jde o hashovací algoritmy, které je třeba použít. Jejich doporučení , od php> =5.5.0, je používat password_hash a password_verify funkce pro hašování a ověřování hašovaných hesel. Další výhodou je, že tyto funkce automaticky zahrnují individualizovanou sůl jako součást vráceného hashe, takže se o to nemusíte výslovně starat.

Pokud se nestaráte o získání skutečné hodnoty hesla (z hodnoty zašifrované v databázi), můžete na něm spustit jednosměrný hashovací algoritmus (například sha1). Tato funkce vrátí řetězec specifické délky (hash), který nelze použít k nalezení původního řetězce (teoreticky). Je možné, že dva různé řetězce mohou vytvořit stejný hash (tzv. kolize), ale to by neměl být problém s hesly.
Příklad: $pass = sha1($_REQUEST['pass']);

Jedna věc, aby to bylo trochu bezpečnější, je přidat do hashe sůl a znovu spustit hashovací funkci. To ztěžuje generování hash hesla se zlým úmyslem, protože hodnota salt je zpracovávána pouze na straně serveru.
Příklad: $pass = sha1(sha1($_REQUEST['pass']).sha1("[email protected]$#(%"));



  1. Jak obnovím soubor výpisu z mysqldump?

  2. Převést „datetimeoffset“ na „smalldatetime“ v SQL Server (příklady T-SQL)

  3. Skript pro import databáze mysql z konkrétního umístění souboru

  4. Proměnná PHP a dotaz LIKE MySQL nefungují