chiffrer et déchiffrer md5

j'utilise le code $enrypt=md5($pass) et j'insère $encrypt dans la base de données. Je veux trouver un moyen de les déchiffrer. J'ai essayé d'utiliser un logiciel de décryptage mais il dit que le hachage devrait être d'exactement 16 octets. est-il un moyen de le décrypter ou 16 octets hachage md5?

mon hash ressemble à ceci: c4ca4238a0b923820dcc

55
demandé sur Gottlieb Notschnabel 2013-03-04 08:40:37

6 réponses

comme déjà indiqué, vous ne pouvez pas décrypter MD5 sans tenter quelque chose comme le piratage de force brute qui est extrêmement exigeant en Ressources, pas pratique, et contraire à l'éthique.

cependant, vous pouvez utiliser quelque chose comme ceci pour chiffrer / déchiffrer les mots de passe/etc en toute sécurité:

$input = "SmackFactory";

$encrypted = encryptIt( $input );
$decrypted = decryptIt( $encrypted );

echo $encrypted . '<br />' . $decrypted;

function encryptIt( $q ) {
    $cryptKey  = 'qJB0rGtIn5UB1xG03efyCp';
    $qEncoded      = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
    return( $qEncoded );
}

function decryptIt( $q ) {
    $cryptKey  = 'qJB0rGtIn5UB1xG03efyCp';
    $qDecoded      = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), base64_decode( $q ), MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ), ""151900920"");
    return( $qDecoded );
}

utiliser une méthode cryptée avec un sel serait encore plus sûr, mais ce serait une bonne prochaine étape après juste en utilisant un hash MD5.

60
répondu BIT CHEETAH 2013-03-04 05:08:37

impossible de déchiffrer MD5. Eh bien, il y a, mais pas de raisonnable façon de le faire. C'est le genre de point.

pour vérifier si quelqu'un entre le mot de passe correct, vous devez MD5 quel que soit l'utilisateur entré, et voir si cela correspond à ce que vous avez dans la base de données.

15
répondu Niet the Dark Absol 2013-03-04 04:43:04
/* you  can match the exact string with table value*/

if(md5("string to match") == $res["hashstring"])
 echo "login correct";
5
répondu Mahesan Rv 2013-10-27 15:40:11

cette question est marquée avec PHP. Mais beaucoup de gens utilisent maintenant Laravel framework. Cela pourrait aider quelqu'un dans le futur. C'est pourquoi je réponds pour Laravel. Il est plus facile de chiffrer et déchiffrer avec des fonctions internes.

$string = 'c4ca4238a0b923820dcc';
$encrypted = \Illuminate\Support\Facades\Crypt::encrypt($string);
$decrypted_string = \Illuminate\Support\Facades\Crypt::decrypt($encrypted);

var_dump($string);
var_dump($encrypted);
var_dump($decrypted_string);

Note: assurez-vous de définir une chaîne aléatoire de 16, 24 ou 32 caractères dans la option clé de la config / app.fichier php. Autrement, des valeurs cryptées ne sera pas sécurisée.

mais vous ne devrait pas utiliser le chiffrement et le déchiffrement pour l'authentification. Vous devez plutôt utiliser hachage faire et vérifier.

pour stocker le mot de passe dans la base de données, faites le hachage du mot de passe et puis enregistrez.

$password = Input::get('password_from_user'); 
$hashed = Hash::make($password); // save $hashed value

pour vérifier le mot de passe, obtenir le mot de passe stocké du compte de la base de données

// $user is database object
// $inputs is Input from user
if( \Illuminate\Support\Facades\Hash::check( $inputs['password'], $user['password']) == false) {
  // Password is not matching 
} else {
  // Password is matching 
}
3
répondu Somnath Muluk 2016-01-30 10:22:00

Hachages ne peut être déchiffré ça .

si vous voulez chiffrer-déchiffrer, utilisez une fonction de chiffrement bidirectionnelle de votre base de données comme - AES_ENCRYPT (dans MySQL).

mais je suggère l'algorithme CRYPT_BLOWFISH pour stocker le mot de passe. Lisez ceci - http://php.net/manual/en/function.crypt.php et http://us2.php.net/manual/en/function.password-hash.php

pour Blowfish par crypt() fonction -

crypt('String', 'a$twentytwocharactersalt$');

password_hash sera introduit en PHP 5.5.

$options = [
    'cost' => 7,
    'salt' => 'BCryptRequires22Chrcts',
];
password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options);

une fois que vous avez stocké le mot de passe, vous pouvez vérifier si l'Utilisateur a entré le mot de passe correct en le hachant de nouveau et en le comparant avec la valeur stockée.

2
répondu ShuklaSannidhya 2013-03-04 04:54:52

il n'est pas possible de déchiffrer MD5 hash qui a créé. Vous avez besoin de toutes les informations pour décrypter la valeur MD5 qui a été utilisée pendant le cryptage.

vous pouvez utiliser AES algorithme pour chiffrer et déchiffrer

JavaScript AES encryption and decryption (Advanced Encryption Standard)

2
répondu Mayur Shedage 2018-08-03 07:32:10