Pour l'authentification avec Dovecot, j'utilise des hachages SSHA256 mais je ne sais pas comment valider un mot de passe donné par rapport au hachage existant. Les fonctions PHP suivantes (trouvées sur le web) sont utilisées pour créer le hachage SSHA256 :
function ssha256($pw) {
$salt = make_salt();
return "{SSHA256}" . base64_encode( hash('sha256', $pw . $salt, true ) . $salt );
}
function make_salt() {
$len = 4;
$bytes = array();
for ($i = 0; $i < $len; $i++ ) {
$bytes[] = rand(1,255);
}
$salt_str = '';
foreach ($bytes as $b) {
$salt_str .= pack('C', $b);
}
return $salt_str;
}
Exemple de sortie : {SSHA256}lGq49JTKmBC49AUrk7wLyQVmeZ7cGl/V13A9QbY4RVKchckL
Je dois extraire le sel, mais comment ? J'ai complètement perdu le chemin pour résoudre le problème, quelqu'un a-t-il un indice pour cela ?
Merci à tous pour votre aide !
Oh et désolé, je dois utiliser SSHA256, car Dovecot 1.2.15 ne supporte que ces schémas : CRYPT MD5 MD5-CRYPT SHA SHA1 SHA256 SMD5 SSHA SSHA256 PLAIN CLEARTEXT CRAM-MD5 HMAC-MD5 DIGEST-MD5 PLAIN-MD4 PLAIN-MD5 LDAP-MD5 LANMAN NTLM OTP SKEY RPA