首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >十六进制中的非法整数字符

十六进制中的非法整数字符
EN

Stack Overflow用户
提问于 2016-04-03 21:28:08
回答 1查看 651关注 0票数 0

我正在研究一个使用替换框的加密方案。我得到了要使用的替换框,其中框中的每个元素(保存为数组)都是十六进制(例如,0xD1310BA6)。由于某些原因,我得到了一个语法错误(我使用的是NetBeans),上面写着“非法字符'\u00a0'”--我不明白真正的问题是什么,也不明白如何解决它。我尝试将数组类型更改为long,以防int不够大(非常肯定是这样)或char,因为它给了我一个关于字符的错误,但两者都没有解决问题。

这里是我的一个S盒和一些使用S-Boxes的代码的一部分,这样您就可以理解我试图用它们做什么了。

S-Box:

代码语言:javascript
复制
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,
};

有关守则:

代码语言:javascript
复制
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)),因为我还没有完成它的编写。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-03 21:32:52

U00a0是一个不可破坏的空间。所以您无法在代码中看到它,因为它看起来只是一个常规的空格字符,但是它就在错误消息所指示的行(可能是列)的某个地方。

删除该空格,并将其替换为规则的空格字符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36391417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档