2016-04-03 22 views
0

私は代入ボックスを使用する暗号化方式の開発を進めています。ボックスの各要素(配列として保存されている)が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型))値を代入する関数でありますまだ。

答えて

2

\ u00a0は壊れないスペースです。したがって、通常の空白文字のように見えますが、エラーメッセージで示される行(おそらくは列)のどこかにあるため、コード内でその文字を見ることはできません。

スペースを消去し、スペースを空白に置き換えます。

+0

母はどのような愚かな間違いです。私の教授は、S-Boxを正しくフォーマットしていないのを嫌っている。ありがとうございました! – user2872777

関連する問題