私はAES暗号化に問題があり、お客様から "復号化"のPHPサーバーコードが表示されました。奇妙なことに、正確なコードはS.O. (驚かない)。私は顧客が渡したコードがまったく同じコメントだったので、これを見つけました! :)このPHPラインをJavaに移植するにはどうしたらいいですか?
とにかく、this S.Oから取ったPHPコードです。質問。
私は、Javaと同じことをしようとしていますが、私はこの正確なラインが追加されるのか分からない:
$key = 'a16byteslongkey!';
$padded_key = $key . str_repeat(chr(0x00), 16); // Argh!
(!の//なんてこったコメントは私ではなかった注意してください。)
もし32ビットのキーを作るためにchr(0x00)を追加しようとしているのでしょうか?(もし$キーが16なので)もしあれば、どうすればJavaで同じことができますか?
@ジョシュはおそらく私は明らかにすべきである:PHPで何かchr(0x00)は何ですか? –
PHPでは、文字列はバイナリセーフです(文字列内のすべての文字は実際にはバイトです)が、JavaのStringインスタンスは実際にはバイトではなく文字を表します。バイナリ暗号化キーの場合は、おそらく 'String'オブジェクトではなく' Key'クラスのような 'byte []'か何かを使うべきです。 –
@AnotherCode確かに、説明をいただきありがとうございます。 16バイトのキーを16個の0で完成させるために、顧客はサーバ側で「ハッキー」なことをしていたことがわかりました。固定キーに16個の "ゼロ"を埋め込んだ後、32個を追加しました。 ;) –