PHP mcrypt // Chilkat AES encryption -- integration
I'm trying to decrypt a string using PHP which was encrypted using a Chilkat library.
VB Encryption:
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 Decryption:
$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";
The output is garbage ... any ideas? I'm not sure exactly what the default IV and Padding settings that Chilkat uses, nor am I sure how to emulate those default values in PHP.
开发者_如何学PythonThanks much in advance.
my guess: try md5($key, true) instead of md5($key).
精彩评论