Почему существует разница в шифровании Blowfish между Crypt :: CBC (perl) и OpenSSL (ruby)?
Perl
use Crypt::CBC;
my $cipher = Crypt::CBC->new( -key => 'length32length32length32length32', -cipher => 'Blowfish' );
my $ciphertext = $cipher->encrypt_hex('test');
# ciphertext is 53616c7465645f5f409c8b8eb353823c06d9b50537c92e19
Ruby
require "rubygems"
require "openssl"
cipher = OpenSSL::Cipher::Cipher.new("bf-cbc")
cipher.encrypt
cipher.key = "length32length32length32length32"
result = cipher.update("test") << cipher.final
ciphertext = result.unpack("H*").first
# ciphertext is 16f99115a09e0464
Crypt :: CBC, по-видимому, добавляет Salted__
к выводу по умолчанию.Можете ли вы объяснить, что происходит так сильно отличается между ними?Есть ли способ заставить OpenSSL вести себя так же, как Crypt :: CBC?