使用PHP,我试图模仿Perl的功能:
#!/usr/bin/perl
use DBI;
use Crypt::ECB qw(encrypt decrypt encrypt_hex decrypt_hex);
$code = encrypt_hex($key, "Blowfish", $secret);
我的结果没有产生任何结果,例如:
$code = crypt($key, '$2a$07$'."$secret$");
有什么建议吗?
答案 0 :(得分:1)
半个回答:
Crypt::ECB::encrypt_hex('Some_key', 'Blowfish', '12345678')
应该等同于
unpack('H*', mcrypt_ecb('BLOWFISH', 'Some_key', '12345678', MCRYPT_ENCRYPT))
但是,我无法让它发挥作用。
答案 1 :(得分:1)
花了一些时间来弄明白。 @daxim使用mcrypt让我走上了尝试mcrypt库的道路。
$td = mcrypt_module_open('blowfish', '', 'ecb', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $secret);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$unpacked = unpack("H*", $encrypted_data);
$hexed = implode($unpacked);
答案 2 :(得分:-2)
我不知道PERL函数,但也许the PHP hash-function可以做你想要的:
string hash ( string $algo , string $data [, bool $raw_output = false ] )