it-swarm-eu.dev

crittografare e decifrare md5

Sto usando il codice $enrypt=md5($pass) e inserendo $encrypt nel database. Voglio scoprire un modo per decrittografarli. Ho provato a utilizzare un software di decodifica ma dice che l'hash dovrebbe essere esattamente di 16 byte. c'è un modo per decodificarlo o per renderlo un hash MDD da 16 byte?

Il mio hash è simile a questo: c4ca4238a0b923820dcc

57
Tomer

Come già affermato, non è possibile decodificare MD5 senza tentare qualcosa come l'hacking della forza bruta che è estremamente dispendioso in termini di risorse, non pratico e non etico.

Tuttavia, è possibile utilizzare qualcosa di simile per crittografare/decifrare password/etc in modo sicuro:

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

L'utilizzo di un metodo di encoding con un sale sarebbe ancora più sicuro, ma questo sarebbe un buon passo successivo usando solo un hash MD5.

64
BIT CHEETAH

Non c'è modo di decifrare MD5. Bene, c'è, ma no modo ragionevole per farlo. Questo è il punto.

Per verificare se qualcuno sta inserendo la password corretta, è necessario MD5 qualunque sia l'utente inserito, e vedere se corrisponde a quello che hai nel database.

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

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

Questa domanda è contrassegnata con PHP. Ma molte persone usano ora il framework Laravel. Potrebbe aiutare qualcuno in futuro. Ecco perché rispondo a Laravel. È più facile crittografare e decifrare con le funzioni interne.

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

Nota: assicurati di impostare una stringa casuale di 16, 24 o 32 caratteri nell'opzione chiave del file config/app.php. In caso contrario, i valori crittografati non saranno sicuri.

Ma non dovresti usare criptare e decifrare per l'autenticazione. Piuttosto dovresti usare hash make e check.

Per memorizzare la password nel database, effettuare l'hash della password e quindi salvare.

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

Per verificare la password, ottenere la password memorizzata dell'account dal database

// $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

Non è possibile decifrare MD5 hash che ha creato. Sono necessarie tutte le informazioni per decrittografare il valore MD5 utilizzato durante la crittografia.

È possibile utilizzare l'algoritmo AES per crittografare e decrittografare

Crittografia e decrittografia AES JavaScript (Advanced Encryption Standard)

2
Mayur S

Gli hash non possono essere decodificati verificarlo .

Se si desidera crittografare-decriptare, utilizzare una funzione di crittografia bidirezionale del proprio database come - AES_ENCRYPT (in MySQL).

Ma suggerirò l'algoritmo CRYPT_BLOWFISH per l'archiviazione della password. Leggi questo- http://php.net/manual/en/function.crypt.php e http: //us2.php.net/manual/en/function.password-hash.php

Per Blowfish con funzione crypt() -

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

password_hash sarà introdotto in PHP 5.5.

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

Una volta memorizzata la password, è possibile controllare se l'utente ha inserito la password corretta eseguendo nuovamente l'hashing e confrontandolo con il valore memorizzato.

2
ShuklaSannidhya