J'essaie d'imiter la création de chaînes de mot de passe telles qu'elles apparaissent dans/etc/shadow.Comment générer une chaîne de mot de passe cryptée, comme dans/etc/shadow?
C'est ce que j'ai jusqu'ici, mais les mots de passe cryptés ne correspondent pas, quand j'utilise le même mot de passe et le même sel.
5000 tours est standard pour la crypte, alors que j'ai utilisé aussi bien, mais je ne vois pas où exacly je fait une erreur:
Je fais cela en Perl, c'est le porion pertinent:
($pass, $salt) = @ARGV;
unless(defined($salt)) {
$salt = MIME::Base64::encode(random_bytes(12), '');
}
for $i (1 .. 4999) {
$pass = Digest::SHA::sha512($salt, $pass);
}
say "";
print '$6$', $salt, '$', Digest::SHA::sha512_base64($salt, $pass), "\$\n";
Oui, je m'attendais à quelque chose comme ça. Merci, je vais le lire et accepter si c'est ce que je cherche. – polemon
Le document dit: "2. la chaîne de mot de passe est ajoutée à digérer A. 3. la chaîne de sel est ajouté à digérer A." Cela signifie-t-il que j'appose d'abord le sel à la chaîne de mot de passe? Si c'est le cas, ce serait l'inverse pour MD5, qui préfixe les mots de passe avec salt. – polemon
Ok, j'y arrive, j'ai aussi vérifié avec http://www.eglibc.org/cgi-bin/viewcvs.cgi/branches/eglibc-2_9/libc/crypt/sha512-crypt.c?rev= 7350 & view = balisage, intéressant, il y a quelques erreurs de documentation ... Je ne comprends pas la dernière partie, où il fait la base64, est-ce l'ordre des octets inversé? – polemon