it-swarm.com.de

verschlüsseln und entschlüsseln md5

Ich verwende den Code $enrypt=md5($pass) und füge $encrypt In die Datenbank ein. Ich möchte einen Weg finden, sie zu entschlüsseln. Ich habe versucht, eine Entschlüsselungssoftware zu verwenden, aber es heißt, der Hash sollte genau 16 Bytes lang sein. Gibt es eine Möglichkeit, es zu entschlüsseln oder es zu einem 16-Byte-MD5-Hash zu machen?

Mein Hash sieht so aus: c4ca4238a0b923820dcc

57
Tomer

Wie bereits erwähnt, können Sie MD5 nicht entschlüsseln, ohne etwas wie Brute-Force-Hacking zu versuchen, das extrem ressourcenintensiv, unpraktisch und unethisch ist.

Sie könnten jedoch so etwas verwenden, um Passwörter/etc sicher zu verschlüsseln/entschlüsseln:

$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 ) ) ), "\0");
    return( $qDecoded );
}

Die Verwendung einer verschlüsselten Methode mit einem Salz wäre noch sicherer, aber dies wäre ein guter nächster Schritt nach der Verwendung eines MD5-Hashs.

65
BIT CHEETAH

Es gibt keine Möglichkeit, MD5 zu entschlüsseln. Nun, es gibt, aber keine vernünftige Möglichkeit, dies zu tun. Das ist genau der Punkt.

Um zu überprüfen, ob jemand das richtige Kennwort eingibt, müssen Sie MD5 verwenden, was auch immer der Benutzer eingegeben hat, und prüfen, ob es mit dem übereinstimmt, was Sie in der Datenbank gespeichert haben.

16
/* you  can match the exact string with table value*/

if(md5("string to match") == $res["hashstring"])
 echo "login correct";
5
Mahesan Rv

Diese Frage ist mit PHP getaggt. Aber viele Leute benutzen jetzt Laravel Framework. Es könnte jemandem in Zukunft helfen. Deshalb antworte ich für Laravel. Es ist einfacher, mit internen Funktionen zu ver- und entschlüsseln.

$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);

Hinweis: Stellen Sie sicher, dass Sie in der Option key der Datei config/app.php eine zufällige 16-, 24- oder 32-stellige Zeichenfolge festlegen. Andernfalls sind verschlüsselte Werte nicht sicher.

Sie sollten jedoch kein Ver- und Entschlüsseln für die Authentifizierung verwenden. Vielmehr sollten Sie Hash make verwenden und überprüfen.

Um das Passwort in der Datenbank zu speichern, machen Sie einen Hash des Passworts und speichern Sie es.

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

Um das Passwort zu bestätigen, muss das Passwort des Kontos aus der Datenbank gespeichert werden

// $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 
}
4
Somnath Muluk

Es ist nicht möglich, den erstellten Hash MD5 zu entschlüsseln. Sie benötigen alle Informationen, um den MD5 Wert zu entschlüsseln, der während der Verschlüsselung verwendet wurde.

Sie können den Algorithmus AES zum Ver- und Entschlüsseln verwenden

JavaScript AES Verschlüsselung und Entschlüsselung (Advanced Encryption Standard)

2
Mayur S

Hashes können nicht entschlüsselt werden check this out .

Wenn Sie verschlüsseln und entschlüsseln möchten, verwenden Sie eine bidirektionale Verschlüsselungsfunktion Ihrer Datenbank wie - AES_ENCRYPT (in MySQL).

Aber ich werde den CRYPT_BLOWFISH-Algorithmus zum Speichern des Passworts vorschlagen. Lesen Sie diese http://php.net/manual/en/function.crypt.php und http://us2.php.net/manual/en/function.password- hash.php

Für Blowfish von crypt() function -

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

password_hash wird eingeführt in PHP 5.5.

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

Nachdem Sie das Passwort gespeichert haben, können Sie überprüfen, ob der Benutzer das richtige Passwort eingegeben hat, indem Sie es erneut hashen und mit dem gespeicherten Wert vergleichen.

2
ShuklaSannidhya