Blowfish gebruiken voor versleuteling met PHP

Ik werk aan een registratieformulier waar ik het wachtwoord moet coderen. Ik heb gehoord dat het wordt aanbevolen om de Blowfish-codering voor wachtwoorden te gebruiken. Hoe implementeer je een kogelvisversleuteling met behulp van PHP crypt() -functie? ook ben ik van plan om het wachtwoord later op te halen voor het inloggen.

6
Neem een ​​kijkje op this .
toegevoegd de auteur The Alpha, de bron
U moet wachtwoorden niet "versleutelen", maar een hashing-functie in één richting gebruiken. Zie: Hoe gebruikt u bcrypt voor hash-wachtwoorden in PHP?
toegevoegd de auteur Herbert, de bron
toegevoegd de auteur Jacco, de bron

2 antwoord

The short answer is use crypt with a salt beginning with the characters $2a$, a two digit cost parameter, $, and 22 digits from the alphabet ./0-9A-Za-z. That only works on systems that support the Blowfish encryption algorithm. However, PHP 5.3 implements it natively. See PHP manual — crypt for more details.

Voorbeeld:

crypt('rasmuslerdorf', '$2a$07$somesillystringforsalt')

The salt string triggers the appropriate algorithm. The two digit cost parameter is the base-2 logarithm of the iteration count for the underlying Blowfish-based hashing algorithm and must be in range [04 – 31]. In the example 07 tells the algorithm to use 27 or 128 iterations. The higher this number, the longer it will take to execute BUT, in the context of hashing user passwords, that is a GOOD thing.

This answer to a similar question explains in more detail what BCrypt is,how it relates to Blowfish, and why you should use it. There are many other related topics here on Stack Overflow.


phpass is an excellent, easy to use password hashing framework that works on all systems, using Blowfish if it’s supported, and falling back to other algorithms if it’s not.

6
toegevoegd

Je zou nooit kogelvis nodig hebben om een ​​wachtwoord als dit te versleutelen. Het registratieformulier moet over HTTPS zijn, dat de verdediging tegen een aanvaller op de draad afhandelt. Het wachtwoord zelf moet gehashed zijn ( nooit gecodeerd ). bcrypt is een goede hash-functie voor het wachtwoord op basis van kogelvis. Maar er zijn genoeg berichten gerelateerd aan veilige wachtwoordopslag op SO.

4
toegevoegd
+1 Ik had waarschijnlijk HTTPS moeten noemen.
toegevoegd de auteur Herbert, de bron
Na Heartbleed vulnerability , denk ik dat niets volledig veilig is.
toegevoegd de auteur ontananza, de bron