私は代入ボックスを使用する暗号化方式の開発を進めています。ボックスの各要素(配列として保存されている)が16進数である(0xD1310BA6など)、使用する代入ボックスが与えられました。何らかの理由で、私は文法エラー(NetBeansを使用しています)に "不正な文字 '\ u00a0'"が表示されています。 "問題の本当の意味や解決方法を理解できません。私は文字のエラーを与えていたので、int型が十分に大きくない(かなり確かである)かchar型ではないのに、配列型をlong型に変更しようとしましたが、どちらも問題を解決しませんでした。16進数の不正な整数文字
ここに私のS-Boxesの一部と、S-Boxesを使用するコードの一部がありますので、私がそれらと何をしようとしているのか理解しています。
SBOXは:
はfinal public int[] SBox1 = {
0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
};
関連するコード:
public int Feistel(int x) {
int f1 = SBox((byte) (x & 0xFF), 1);
int f2 = SBox((byte) ((x >>> 8) & 0xFF), 2);
int f3 = SBox((byte) ((x >>> 16) & 0xFF), 3);
int f4 = SBox((byte) ((x >>> 24) & 0xFF), 4);
return (int) ((((int) (f1 + f2 % Math.pow(2, 32))^f3) + f4) % Math.pow(2, 32));
}
は含まれませんが、私はそれを書き終えていないと(SBOX(バイト、int型))値を代入する関数でありますまだ。
母はどのような愚かな間違いです。私の教授は、S-Boxを正しくフォーマットしていないのを嫌っている。ありがとうございました! – user2872777