小编joe*_*tro的帖子

perl和ruby之间的河豚加密的区别

为什么Crypt :: CBC(perl)和OpenSSL(ruby)之间的blowfish加密存在差异?

Perl的

use Crypt::CBC;

my $cipher = Crypt::CBC->new( -key => 'length32length32length32length32', -cipher => 'Blowfish' );
my $ciphertext = $cipher->encrypt_hex('test');

# ciphertext is 53616c7465645f5f409c8b8eb353823c06d9b50537c92e19
Run Code Online (Sandbox Code Playgroud)

红宝石

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
Run Code Online (Sandbox Code Playgroud)

Crypt :: CBC Salted__默认情况下似乎在输出前面.你能解释一下这些之间发生了什么不同吗?有没有办法让OpenSSL以类似于Crypt :: CBC的方式运行?

ruby encryption perl openssl blowfish

7
推荐指数
1
解决办法
1624
查看次数

标签 统计

blowfish ×1

encryption ×1

openssl ×1

perl ×1

ruby ×1