3 votes

Php : Comment activer le hachage blowfish sur un serveur debian

J'essaie de rendre le hachage de blowfish disponible pour php sur un serveur debian.

Tiré du manuel php sur la fonction crypt() ( http://php.net/manual/en/function.crypt.php ), le code suivant vérifie les fonctions cryptographiques...

<?php
echo("DES is " . CRYPT_STD_DES."<br>Extended DES is ".CRYPT_EXT_DES."<br>MD5 is ".CRYPT_MD5."<br>BlowFish is ".CRYPT_BLOWFISH."<br>");

if (CRYPT_STD_DES == 1) {
    echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "<br>\n";
}
if (CRYPT_EXT_DES == 1) {
    echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "<br>\n";
}
if (CRYPT_MD5 == 1) {
    echo 'MD5:          ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "<br>\n";
}
if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:     ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "<br>\n";
}
if (CRYPT_SHA256 == 1) {
    echo 'SHA-256:      ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "<br>\n";
}
if (CRYPT_SHA512 == 1) {
    echo 'SHA-512:      ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "<br>\n";
}

 echo "System salt size: ". CRYPT_SALT_LENGTH;
?>

Le résultat sur mon serveur montre les hachages suivants comme disponibles :

testDES est 1 Extended DES est 0 MD5 est 1 BlowFish est 0 DES standard : rl.3StKT.4T8M MD5 : $1$rasmusle$rISCgZzpwk3UhDidwXvin0

Alors que sur ma machine locale ubuntu, il semble que blowfish et la famille sha soient disponibles.

Que dois-je installer pour que blowfish fonctionne dans php sur debian 5.0 ?

2voto

Amy Anuszewski Points 1228

$2a$ blowfish hashing n'est pas supporté par la fonction crypt() de la glibc sans correctifs. On peut supposer que si vous recherchez les correctifs que les autres distributions appliquent, vous pouvez reconstruire votre glibc avec ce correctif. Ce site renvoie vers un patch pour la glibc 2.10.1, avec lequel vous devrez probablement vous battre pour l'appliquer à la glibc 2.7 de Lenny. Si vous avez de la chance, PHP détecte ce que crypt() peut faire au moment de l'exécution, sinon vous devrez aussi recompiler PHP.

D'après le site de PHP documents de crypte Depuis php5.3, PHP a sa propre implémentation de crypt() qui peut gérer les algorithmes de hachage non supportés par le système local. Vous pouvez obtenir les paquets php 5.3 construits pour Lenny (oldstable) à partir de la page Dépôt php53 dotdeb .

Si vous ne pouvez pas utiliser la 5.3, alors la php5.2 dans le dépôt 5.2 oldstable de dotdeb pourrait avoir un patch de durcissement/suhosin assez récent pour ajouter CRYPT_BLOWFISH.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X