2017-12-20 25 views
1

は私がjavax.crypto.CipherInputStreamで次の初期化(ライン77)を参照してください可能性がこのバッファが次のように初期化されるのはなぜですか?

private byte[] ibuffer = new byte['Ȁ']; 

Ȁは何を意味し、そしてバッファは、このように初期化される理由は?

+0

どのようなdecompilerを使用しますか? 'private byte [] ibuffer = new byte [512];' –

+0

あなたはこれをどこで読んだのですか?元のソースには512があります。これは 'char 'で表現すると'Ȁ 'です。 – Polygnome

+0

私はjad decompiler @Polygnomeを使用しています。申し訳ありませんが、元のソースを検索しませんでした。 – Natasha

答えて

1

値: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);

2

charintに変換されています。このソースコードから512

0

これは逆コンパイラに問題がある、彼らは唯一のバイトコードを見て、ソースを再構築にしてみてください。

あなたはjavax.crypto.CipherInputStream (Line 77)で元のソースを見れば、あなたはラインが元々

private byte[] ibuffer = new byte[512]; 

'Ȁ'であることはタイプcharのものであり、あなたがintにキャストした場合、それは512の値を持っていることがわかりますあなたの逆コンパイラは、そのバイトコードを生成するための1つの可能な方法を再構築しました - しかし、この場合、正気のプログラマはそれを書く方法はありません(ゴルフや故意にコードを難読化する場合を除く)。

関連する問題