尝试获取具有特定名称的客户时,加密提示EOFException

时间:2019-12-04 08:25:11

标签: java encryption

我正在使用Restful Dis开发Intjellij项目,并实现了非常简单的加密,该加密在客户端和服务器端均实现。我调用的方法之一是getAllCustomers,当我有带有随机名称的客户时,它可以正常工作,但是当我创建一个名称为“ Morten”的客户时,崩溃将崩溃。它在客户端产生“在线程“主”中的com.google.gson.JsonSyntaxException:java.io.EOFException:在客户端的行1列451路径$ [12]处的输入结束”。服务器端的控制台显示,客户是通过加密发送的,但是当我调试解密时,似乎并不能解密整个String。

这是加密类

 public class Encryption {

    public static String encryptDecrypt(String rawString) {


        char[] key = {'F', 'E', 'W', 'O', 'M','X','P'};


        StringBuilder thisIsEncrypted = new StringBuilder();


        for (int i = 0; i < rawString.length(); i++) {
            thisIsEncrypted.append((char) (rawString.charAt(i) ^ key[i % key.length]));
        }

        // We return the encrypted string
        return thisIsEncrypted.toString();
    }
}

取决于创建用户所用的名称以及用作键的字符,有时它有时起作用,有时却不起作用。

    public Trampoline<Void> getAllCustomers(){

    try
    {
        String url = BASE+"customers";

        String response = networkUtil.httpRequest(url, "GET");

        response = Encryption.encryptDecrypt(response);

        Customer[] customers = new Gson().fromJson(response, Customer[].class);


        return Trampoline.more(() -> view.ShowAllCustomers(Arrays.asList(customers)));
    }
    catch (IOException e)
    {
        return Trampoline.more(()-> view.ShowMessage("Error getting customers from server. Message: " + e.getMessage()));
    }

}

有时错误最终会如上所述发生,因为它似乎无法获得必要的enter image description here

最终数组括号。

有时候似乎似乎无法解密整个String,我很茫然,有人知道这个问题可能是什么吗?

0 个答案:

没有答案