は私がjavax.crypto.CipherInputStream
で次の初期化(ライン77)を参照してください可能性がこのバッファが次のように初期化されるのはなぜですか?
private byte[] ibuffer = new byte['Ȁ'];
Ȁ
は何を意味し、そしてバッファは、このように初期化される理由は?
は私がjavax.crypto.CipherInputStream
で次の初期化(ライン77)を参照してください可能性がこのバッファが次のように初期化されるのはなぜですか?
private byte[] ibuffer = new byte['Ȁ'];
Ȁ
は何を意味し、そしてバッファは、このように初期化される理由は?
値:javax/crypto/CipherInputStream.java、このアレイは
/* the buffer holding data that have been read in from the
underlying stream, but have not been processed by the cipher
engine. the size 512 bytes is somewhat randomly chosen */
private byte[] ibuffer = new byte[512];
512で初期化され、文字'Ȁ'
の整数値であるので、同一の初期化です。
試してみてください。System.out.println((char) 512);
char
はint
に変換されています。このソースコードから512
これは逆コンパイラに問題がある、彼らは唯一のバイトコードを見て、ソースを再構築にしてみてください。
あなたはjavax.crypto.CipherInputStream (Line 77)で元のソースを見れば、あなたはラインが元々
private byte[] ibuffer = new byte[512];
'Ȁ'
であることはタイプchar
のものであり、あなたがint
にキャストした場合、それは512の値を持っていることがわかりますあなたの逆コンパイラは、そのバイトコードを生成するための1つの可能な方法を再構築しました - しかし、この場合、正気のプログラマはそれを書く方法はありません(ゴルフや故意にコードを難読化する場合を除く)。
どのようなdecompilerを使用しますか? 'private byte [] ibuffer = new byte [512];' –
あなたはこれをどこで読んだのですか?元のソースには512があります。これは 'char 'で表現すると'Ȁ 'です。 – Polygnome
私はjad decompiler @Polygnomeを使用しています。申し訳ありませんが、元のソースを検索しませんでした。 – Natasha