Mit MCrypt zu Entschlüsseln Ciphertext (3DES CBC-Modus)

Ich habe einen Geheimtext verschlüsselt im-3DES-CBC-Modus, und ich habe einige Schwierigkeiten, ihn zu entschlüsseln. Ich habe die folgenden Informationen (nicht die tatsächlichen Werte):

<?php
//Three 16 character long keys
$key1 = '1234567890123456';
$key2 = '6543210987654321';
$key3 = '6549873210456123';

//The initialisation vector
$ivec = '0102030405060708';

//A token which looks something like this
$token = '2ad82e09e3b4e7c491e4bb9fb7c606e1';
?>

Ich basiert mein Entschlüsselungs-Funktion aus der PHP-Klasse, die in in diesem blog-post. Es sieht wie folgt aus:

<?php
function decrypt($key,$iv,$token) {
    $td = mcrypt_module_open('tripledes', '', 'cbc', ''); 
    $iv = substr($iv, 0, mcrypt_enc_get_iv_size($td)); 
    $expected_key_size = mcrypt_enc_get_key_size($td); 

    $key = substr(md5($key), 0, $expected_key_size); 
    mcrypt_generic_init($td, $key, $iv);

    $decrypted_string = trim(mdecrypt_generic($td, base64_decode($token)));

    mcrypt_generic_deinit($td); 
    mcrypt_module_close($td); 

    return $decrypted_string;
}
?>

Allerdings bin ich mir nicht sicher, wie Sie Sie zu füttern, die drei Schlüssel in den Algorithmus. Ich habe versucht, verketten Sie zusammen, etwa so: $key1.$key2.$key3, und in umgekehrter Reihenfolge, aber ohne Erfolg.

Jede mögliche Hilfe würde geschätzt.

  • Die erwartete key-Länge ist 24, und die zu erwartenden Initialisierung Vektor-Länge ist 8, so ist Sie der Schlüssel muss codiert werden, in hex. Ich bin jetzt mit VolkerK die Funktion unten auf den Tasten, bevor die Entschlüsselung, aber es immer noch nicht Rendite die erwartete Klartext.
  • Sind Sie sicher, dass '2ad82e09e3b4e7c491e4bb9fb7c606e1' ist die base64-codierte version der token?
  • Der token ist etwas, das sehr ähnlich, ja. Wie es aussieht ist es im hex-format zu. Ich habe versucht die base64-Kodierung der token, Umwandlung von hex und Umwandlung von hex, dann base64-Codierung, aber keine Freude.
  • Können Sie uns eine verschlüsselte/codierte token, ein Satz Schlüssel und die zugehörigen entschlüsselten token?
Schreibe einen Kommentar