我必须使用封装在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);
}