Crypt_Blowfish de PEAR fournit le cryptage Blowfish en utilisant l'extension mcrypt si elle est disponible, sinon il met en oeuvre l'algorithme Blowfish nativement en php. Il ne revient pas à l'utilisation d'une autre forme de cryptage.
Il n'y a pas de documentation "manuscrite" pour le paquet, il y a auto-generated API documentation dérivé des annotations dans le paquet lui-même.
Voilà comment je l'utilise pour chiffrer:
$bf = Crypt_Blowfish::factory('ecb', null, null, CRYPT_BLOWFISH_PHP);
$iv = 'abc123+=';
$key = BLOWFISH_KEY;
$bf->setKey($key, $iv);
$encrypted = bin2hex($bf->encrypt($password));
Et pour déchiffrer:
$bf = Crypt_Blowfish::factory('ecb', null, null, CRYPT_BLOWFISH_PHP);
$iv = 'abc123+=';
$key = BLOWFISH_KEY;
$bf->setKey($key, $iv);
$decrypted = trim($bf->decrypt(hex2bin($password)));
Où BLOWFISH_KEY est une constante que j'ai défini ailleurs dans le code.
Dans ces exemples, j'utilise explicitement l'implémentation de PHP. Si je voulais que Crypt_Blowfish décide quel moteur utiliser, c'est-à-dire pour déterminer s'il peut utiliser l'extension mcrypt si elle est disponible (et utilise autrement l'implémentation php), alors je changerais avec CRYPT_BLOWFISH_AUTO. Pour utiliser explicitement l'extension mcrypt, spécifiez CRYPT_BLOWFISH_MCRYPT.
Le blowfish n'est-il pas utilisé pour le cryptage et non pour le hachage? – Manhim
Il signifie que bcrypt est un schéma de dérivation de mot de passe utilisant certaines parties de Blowfish. –
duplication possible de [Comment utilisez-vous bcrypt pour hachage des mots de passe en PHP?] (Http://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php) – derobert