2012-10-19 44 views
3

我正在用PHP編寫一些服務器代碼,並且我有一個用Perl編寫的脫機進程,他們需要通過加密字符串進行通信。在PHP中,我一直在使用:在Perl和PHP之間解碼/編碼openssl aes cbc字符串

 
$encrypted_string = openssl_encrypt($my_string, "aes-128-cbc", "my_password", true, "1234567812345678"); 

我基本上想用Perl來實現完全相同的字符串輸出。任何幫助,我會如何做到這一點表示讚賞。謝謝!

回答

4

我計算出來,現在能夠再現相同的輸出加密在Perl的字符串和PHP:

的Perl:

 
use Crypt::CBC; 
use MIME::Base64; 

my $cipher = Crypt::CBC->new(
    { 
     'key'   => 'length16length16', 
     'cipher'  => 'Crypt::OpenSSL::AES', 
     'iv'   => '1234567812345678', 
     'literal_key' => 1, 
     'header'  => 'none', 
     keysize  => 128/8 
    } 
); 

print encode_base64($cipher->encrypt($my_string), ""); 

PHP:

 
echo openssl_encrypt($my_string, "aes-128-cbc", "length16length16", true, "1234567812345678"); 
相關問題