2010-05-25 4 views
0

J'essaye de décrypter une chaîne en utilisant PHP qui a été crypté en utilisant une bibliothèque Chilkat.PHP mcrypt // Cryptage AES Chilkat - intégration

VB Cryptage:

Dim password As String 
password = "foobar" 

crypt.CryptAlgorithm = "aes" 
crypt.CipherMode = "cbc" 
crypt.KeyLength = 128 

' Generate a binary secret key from a password string 
' of any length. For 128-bit encryption, GenEncodedSecretKey 
' generates the MD5 hash of the password and returns it 
' in the encoded form requested. The 2nd param can be 
' "hex", "base64", "url", "quoted-printable", etc. 
Dim hexKey As String 
hexKey = crypt.GenEncodedSecretKey(password,"hex") 
crypt.SetEncodedKey hexKey,"hex" 

crypt.EncodingMode = "base64" 
Dim text As String 
text = "The quick brown fox jumped over the lazy dog." 

' Encrypt a string and return the binary encrypted data 
' in a base-64 encoded string. 
Dim encText As String 
encText = crypt.EncryptStringENC(text) 

PHP Décryptage:

$filename = "test.txt"; 
$handle = fopen($filename, "r"); 
$contents = fread($handle, filesize($filename)); 
fclose($handle); 
// remove newlines, etc 
$contents = rtrim($contents); 
// remove base64 encoding 
$contents = base64_decode($contents); 

$key = "foobar"; 
// make a hex of this key 
$key = md5($key); 
// notice the iv is NOT set 
$crypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $contents, MCRYPT_MODE_CBC); 
echo "Decrypted: $crypttext \n"; 

La sortie est ordures ... des idées? Je ne suis pas sûr exactement quels sont les paramètres par défaut de IV et de Padding que Chilkat utilise, et je ne suis pas sûr de savoir comment émuler ces valeurs par défaut en PHP.

Merci beaucoup à l'avance.

Répondre

0

ma conjecture: essayez md5 ($ key, true) au lieu de md5 ($ key).

Questions connexes