Java XOR 基于单个字节,具有 byte[] 大小键



我想在每个字节上单独应用异或,并将它们存储在某个内存位置的特定字节中。

例如,我

有一个字符串"0",我将其转换为 ASCII,然后需要使用多字节键对其应用 xor,例如"243",结果数据必须在单个字节中。这可能吗?

private byte[] xorWithKey(byte[] a, byte[] key) {
    byte[] out = new byte[a.length];
    for (int i = 0; i < a.length; i++) {
        out[i] = (byte) (a[i] ^ key[i%key.length]);
    }
    return out;
}

现在我正在使用这个片段,它接受字节数组并返回一个字节数组,这工作正常,但我想在单个字节上实现这一点,例如:

private byte xorWithKey(byte a, byte[] key)

您有一个密钥数组,可以根据您从数组中选择密钥的选择来加密具有许多密钥的输入byte

如果要使用数组中存在的所有密钥加密输入byte,则可以使用以下方法,其中加密功能通过迭代异或方式使用所有密钥进行加密

private byte xorWithKey(byte a, byte[] key) {
byte out=a;
for (int i = 0; i < key.length; i++) {
    out = (byte) (out ^ key[i]);
}
return out;
}

最新更新