3

我必须使用封装在 POST 请求中的 JSONObject 将带有 DES 的加密密码发送到 WebServer。问题是,当我这样做时:

JSONObject jsonLogin = new JSONObject();
try{
    jsonLogin.put("username", usernameS);
    jsonLogin.put("password", passwordEncrypted);
}catch (JSONException e){
    e.printStackTrace();
}

如果我打印 JSON 对象的内容:

System.out.println("JSON to Server = "+jsonLogin);

结果是:

JSON to Server = {"password":"Qxw\/h16PVdE=\n","username":"XXXXXXXX@gmail.com"}

但正确的密码是Qxw/h16PVdE=,所以服务器无法识别它。

我发现了一些建议使用:string.replaceAll("\/","/"); 但我想实施一个干净的解决方案。请给我任何建议。

4

2 回答 2

1

我猜你在加密数据时做错了什么。您可以使用任何方式在加密后使用这段代码来操作字符串。

String encryptedPassword = (String) jsonLogin.get("password");
if (!TextUtils.isEmpty(encryptedPassword) && encryptedPassword.endsWith("\n")) {
    encryptedPassword = encryptedPassword.substring(0, encryptedPassword.length() - 1);
    jsonLogin.put("password", encryptedPassword);
}
于 2013-06-27T13:10:26.787 回答
0

根据这个答案

如何删除java中字符串之间的\n、\t和空格?

您可以passwordEncrypted.replaceAll("\\n+", "");在写入值之前调用。

于 2013-06-27T12:31:54.600 回答