【发布时间】:2019-12-18 18:36:50
【问题描述】:
我在 Android java 函数和 C# 端有解密函数的加密密码函数。 我的问题是当我加密密码时
密码是
No8ANfBX/0GAWJnF4v0bQwf/4UiJ7qY7rOPfrfB0XMQ=
当我通过 Rest API 传递这个参数时, 我的密码改为-
No8ANfBX/0GAWJnF4v0bQwf\/4UiJ7qY7rOPfrfB0XMQ= Image
所以在服务器解密时,密码不一样。 我的参数传递代码是
public JSONObject A(String userName, String passWord, String version) throws Exception {
JSONObject result = null;
JSONObject o = new JSONObject();
JSONObject p = new JSONObject();
try {
o.put("interface", "AA");
o.put("method", "A");
p.put("userName", mapObject(userName));
p.put("passWord", mapObject(passWord));
p.put("version", mapObject(version));
o.put("parameters", p);
Log.e("Pass",String.valueOf(passWord));
Log.e("Pass",String.valueOf(mapObject(passWord)));
String s = o.toString();
Log.e("Params", String.valueOf(s));
String r = load(s);
Log.e("Params", String.valueOf(r));
result = new JSONObject(r);
} catch (Exception e) {
Log.e("Error is", String.valueOf(e));
}
return result;
}
我怎样才能更改为不在参数中添加额外的 \?
【问题讨论】:
-
它只是转义了特殊字符
/。因为使用了反向条`,只需从服务器中的字符串中删除所有反向条,仅此而已。清理字符串。 -
是的,我怎么能从 android java 参数传递不从 No8ANfBX/0GAWJnF4v0bQwf/4UiJ7qY7rOPfrfB0XMQ= 更改为 No8ANfBX\/0GAWJnF4v0bQwf\/4UiJ7qY7rOPfrfB0XMQ=
-
'\\'真的存在还是您只是在调试器中看到它? -
这里有几件事要解压,我在问题中没有看到足够的信息来这样做。首先,您所说的密码似乎已经加密并经过 base64 编码。我这样说是因为当我对它进行 base64 解码时,我得到了一个不错的长度(32 个字节)的随机字节。其次,这个“服务器上的解密密码”是从哪里来的?那个代码在哪里?
标签: c# android encryption