Comment décrypter hash stocké par bcrypt

J'ai ce script qui permet de crypter un mot de passe mais je ne sais pas comment l'inverser et de les décrypter. Cela peut être une réponse très simple mais je ne comprends pas comment le faire.

#!/usr/bin/perl
use Crypt::Eksblowfish::Bcrypt;
use Crypt::Random;

$password = 'bigtest';
$encrypted = encrypt_password($password);
print "$password is encrypted as $encrypted\n";

print "Yes the password is $password\n" if check_password($password, $encrypted);
print "No the password is not smalltest\n" if !check_password('smalltest', $encrypted);

# Encrypt a password 
sub encrypt_password {
    my $password = shift;

    # Generate a salt if one is not passed
    my $salt = shift || salt(); 

    # Set the cost to 8 and append a NUL
    my $settings = '$2a$08$'.$salt;

    # Encrypt it
    return Crypt::Eksblowfish::Bcrypt::bcrypt($password, $settings);
}

# Check if the passwords match
sub check_password {
    my ($plain_password, $hashed_password) = @_;

    # Regex to extract the salt
    if ($hashed_password =~ m!^$2a$\d{2}$([A-Za-z0-9+\\.]{22})!) {
        return encrypt_password($plain_password, $1) eq $hashed_password;
    } else {
        return 0;
    }
}

# Return a random salt
sub salt {
    return Crypt::Eksblowfish::Bcrypt::en_base64(Crypt::Random::makerandom_octet(Length=>16));
}
C'est exactement ce que le hachage ne veut pas dire. Vous ne devriez jamais être capable de lire un mot de passe.
Vous ne pouvez pas "déchiffrer" un hash, parce qu'il n'est pas chiffrée. Les hachages sont comme le hamburger. Facile d'aller à la Vache->Hamburger. Mais vous voulez Hamburger->Vache. Bonne chance...
Ah ok je comprends, merci! Désolé, j'étais confus.
L'amour que l'analogie, va l'utiliser à l'avenir.
Utilisation Authen::mot de passe multiterme de concocter votre propre schéma d'authentification. Voir mon code dans le stackoverflow.com/questions/3675917/...

OriginalL'auteur BluGeni | 2013-08-06