Java に関する有用な回答は、ここまたは Web で一般的に見つかりません。問題は一見単純です。任意のサイズのバイト配列に含まれるビット数をカウントする方法が必要です。バイト配列は、16 進数、10 進数、または 2 進数の値を保持できます。
これは、答えを見ると自分を蹴飛ばしてしまうような質問の 1 つだと確信していますが、非常にイライラしています。メソッドは次のようになります。
public int bitsInByteArray(byte[] b) {
return - sum of bit count (ie the sum total bits, not the sum of their values)
of each byte in b
}
方向性やアドバイスをいただければ幸いです。
編集 - 申し訳ありませんが、私はこれをまったく正しく言いませんでした。私は暗号割り当てを行っており、「キー k で AES を使用して 64 ゼロ ビットを含む単一ブロックを暗号化する」ように求められました。 64個のゼロ要素。問題は、これは確かに 512 ビットですか? では、ゼロの値を 8 つ入れればよいのでしょうか。
これを行うと、暗号化された出力は -75 111 69 107 -18 88 51 89 68 -123 -49 18 -26 -109 94 21 になります。
もう一度復号化すると、元の 8 つのゼロが得られます。これは AES では通常のことですか、それとも何か間違っている可能性があります。ブロック暗号は、暗号化と復号化の両方で同じサイズの入力/出力を生成すると考えました。