0

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$");

助言がありますか?

4

3 に答える 3

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);
于 2012-07-11T08:06:51.620 に答える
1

半分の答え:

Crypt::ECB::encrypt_hex('Some_key', 'Blowfish', '12345678')

に相当するはずです

unpack('H*', mcrypt_ecb('BLOWFISH', 'Some_key', '12345678', MCRYPT_ENCRYPT))

しかし、私はそれを機能させることができませんでした。

于 2012-06-25T16:04:20.260 に答える
-2

そのPERL関数については知りませんが、PHPハッシュ関数はあなたが望むことをするかもしれません:

string hash ( string $algo , string $data [, bool $raw_output = false ] )
于 2012-06-25T10:45:42.003 に答える