PHP to Perl encryption  

I spent quite a while trying to get encryption working between PHP and Perl. Here is my final solution using blowfish.

$cipher = 'blowfish'; $input = "This is a super secret message, don't let anyone read it"; $key = get_rand(56); $iv = get_rand(8); $cry = mcrypt_encrypt($cipher, $key, $input, MCRYPT_MODE_CBC,$iv); print "
Cipher: " . strtoupper($cipher) . " with a keysize of $key_size\n";
print "Key: $key\n";
print "IV: $iv\n";
print "Plaintext: $input\n";
print "Base64 encode: " . base64_encode($cry) . "\n";

$dec = mcrypt_decrypt($cipher, $key, $cry, MCRYPT_MODE_CBC,$iv);
$dec = rtrim($dec,chr(0)); # Remove the padding PHP adds

print "Decrypted: $dec


";
function get_rand($size) {
#srand(73);
for ($i=0;$i<$size;$i++) { $ret .= chr(rand(64,126)); }

return $ret;
}

Output:
Cipher: BLOWFISH with a keysize of
Key: HHctIET_ohhQoNT_kmanlgN~jXLJHQUQYxGc~[CoDlAszVTgDvWp^epJ
IV: HHctIET_
Plaintext: This is a super secret message, don't let anyone read it
Base64 encode: qGrrbvkXl3ngDChiNeIVQDuniRQh5wbKZCh/oWmBwNzSw8bENwEdVBBrYcIBkBoLOQNtJacyslk=
Decrypted: This is a super secret message, don't let anyone read it

use Crypt::CBC; use MIME::Base64; $key = 'HHctIET_ohhQoNT_kmanlgN~jXLJHQUQYxGc~[CoDlAszVTgDvWp^epJ'; $iv = 'HHctIET_'; $cipt = 'qGrrbvkXl3ngDChiNeIVQDuniRQh5wbKZCh/oWmBwNzSw8bENwEdVBBrYcIBkBoLOQNtJacyslk='; $cipher = Crypt::CBC->new( -key => $key, -cipher => 'Blowfish', -iv => $iv, -header => 'none', -padding => 'null', -literal_key => true, -keysize => length($key), ); $clt = $cipher->decrypt(decode_base64($cipt)); print "Key: $key\n"; print "IV: $iv\n"; print "Base64: $cipt\n"; print "Decrypted: $clt\n";
Output:
Key: HHctIET_ohhQoNT_kmanlgN~jXLJHQUQYxGc~[CoDlAszVTgDvWp^epJ
IV: HHctIET_
Base64: qGrrbvkXl3ngDChiNeIVQDuniRQh5wbKZCh/oWmBwNzSw8bENwEdVBBrYcIBkBoLOQNtJacyslk=
Decrypted: This is a super secret message, don't let anyone read it
Leave A Reply
Bookmark and Share
All content licensed under the Creative Commons License