0

Javaのサービスから3DES暗号化された文字列を持っています-

30BA1A87B3B08F8A6F69BF0E2EC7539B

PHP で 3DES 暗号化を適用して結果を確認すると、次のような非常に異なる文字列が返されます -

ªã;Îù1ù@yq—ÿÃÓ"Õó[ûñüM“ƒº5fá$!Ø5JºÝ7

http://sourceforge.net/projects/phpseclib/の Crypt_TripleDES である暗号化用のオープン ソース PHP ライブラリを使用しています。

何が間違っているのか、どこが間違っているのかを理解するために、誰かが私を助けることができますか?

何か足りないものがないか尋ねてください。

ありがとう

PHP コード -

require_once 'Crypt/TripleDES.php';
$tdes = new Crypt_TripleDES();
$tdes->setKey($key);
$enc_text = $tdes->encrypt($text);
echo 'Encrypted text - '.($enc_text).'<br />';
4

1 に答える 1

1

これは、情報を表示する方法に最も似ています。

最初の行では、文字列を 16 進数として出力しているようです。つまり、データの各バイトは 2 つの 16 進数文字に変換されます。

2 行目では、生のバイナリを出力にダンプしようとしているように見えます。つまり、各バイトは ASCII 文字として解釈されます。

Java 出力に関する詳細情報を入手できますか? どうやってそれを正確に取得しましたか?


ライブラリを見た後、はい、生のバイナリ文字列を返しているようです。これを 16 進数に変換するには、組み込みbin2hex()関数を呼び出すだけです。

require_once 'Crypt/TripleDES.php';
$tdes = new Crypt_TripleDES();
$tdes->setKey($key);
$enc_text = $tdes->encrypt($text);
echo 'Encrypted text - ' . bin2hex($enc_text) . '<br />';
于 2012-07-26T03:51:56.597 に答える