我必须使用封装在post请求中的jsonobject将des加密的密码发送到web服务器。问题是,当我这样做时:

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":"[email protected]"}

但是正确的密码是Qxw/h16PVdE=,所以服务器无法识别它。
我找到了一些建议,表明要使用:string.replaceAll("\/","/");
但我想实现一个干净的解决方案。
请给我一些建议。

最佳答案

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

String encryptedPassword = (String) jsonLogin.get("password");
if (!TextUtils.isEmpty(encryptedPassword) && encryptedPassword.endsWith("\n")) {
    encryptedPassword = encryptedPassword.substring(0, encryptedPassword.length() - 1);
    jsonLogin.put("password", encryptedPassword);
}

07-27 14:01