0

我正在开发一个游戏,我需要保存一些保存受保护数据的数据文件,我的目标是没有人能够读取/编辑文件,我编写了一个简单的字节操作算法:

private static final int KEY = 25156;

public static String encrypt(String s) {
    byte[] bytes = s.getBytes();
    for (int i = 0; i < bytes.length; i++)
        bytes[i] = (byte) (bytes[i] + KEY);
    return new String(bytes);
}

public static String decrypt(String s) {
    byte[] bytes = s.getBytes();
    for (int i = 0; i < bytes.length; i++)
        bytes[i] = (byte) (bytes[i] - KEY);
    return new String(bytes);
}

字符串不可读,但我有几个问题:

  1. 这可以解决我的问题吗?
  2. 如果没有,还有什么可以解决的?
4

1 回答 1

0

我可以建议 XOR 加密吗?

编码或解码:

public static String crypt(String s) {
    byte[] bytes = s.getBytes();
    for (int i = 0; i < bytes.length; i++)
        bytes[i] = (byte) (bytes[i] ^ KEY);
    return new String(bytes);
}

调用crypt("foo")将加密。如果你再次调用 crypt,它会解密:crypt(crypt("foo")) // returns "foo"

为了让它更加随机化,你可以开始加入其他变量:

bytes[i] = (byte) (bytes[i] ^ KEY ^ i ^ bytes.length);
于 2013-10-05T22:05:55.167 回答