有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java简单加密

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

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. 如果没有,还有什么可以解决

共 (1) 个答案

  1. # 1 楼答案

    我可以推荐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);