It looks like the encryption is getting closer, but not exact. From my php encrypted string, they always end in %3D. My perl encrytped string is slightly longer and ends in ...%3D%0A.
#!/usr/bin/perl
use Crypt::CBC;
use Crypt::Rijndael;
use Digest::MD5 qw(md5_hex md5_base64);
use MIME::Base64;
use URI::Escape;
sub encrypt{
my $data = shift;
$data = &get16($data);
my $key = "HELLOKEY";
my $key_size = 16;
my $key_hash = md5_hex($key);
$AESKEY = substr($key_hash,0,$key_size);
print "AESKEY->".$AESKEY."\n";
my $iv= Crypt::CBC->random_bytes(16);
my $cipher = Crypt::CBC->new(
-key => $AESKEY,
-cipher => 'Rijndael',
-padding => 'rijndael_compat',
-keysize => $keysize,
-header => 'none',
-iv =>$iv
);
$iv = $cipher->get_initialization_vector();
my $encrypted = $cipher->encrypt($data);
print "After encryption:$encrypted\n";
$encrypted = $iv.$encrypted;
$encrypted = encode_base64($encrypted);
print "After base 64 encoding:$encrypted\n\n";
$encrypted = uri_escape($encrypted);
print "After url_encoding: $encrypted\n";
}
&encrypt("test123");
Output:
After encryption:ß7ý
NÌÚNf"G¼èÈøö
After base 64 encoding:W91lGKIvb4dyJhYx96ME2t83/YROzNpOZiJHvOjI+PY=
After url_encoding: W91lGKIvb4dyJhYx96ME2t83%2FYROzNpOZiJHvOjI%2BPY%3D%0A
|