我想在android中使用post方法将加密的json数据发送到服务器。这是我发送json数据的代码。如何加密?
public String Update(String userid,String uname)
{
String response = null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("user_id",userid));
nameValuePairs.add(new BasicNameValuePair("status","update"));
nameValuePairs.add(new BasicNameValuePair("user_name",uname));
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL+OPERATION_UPDATE_USERNAME);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
response= httpclient.execute(httppost,responseHandler);
JSONObject jsonObj = new JSONObject(response);
}
catch(Exception e)
{
}
return response.trim();
}
答案 0 :(得分:1)
加密必须在双方进行,方法取决于您对加密的要求。例如,如果您只想保护用户免受中间人攻击,可以使用HTTPS。
另一个目的是隐藏你的API以免黑客这样做你应该为自己定义一个协议,用静态密钥说XORing:
UrlEncodedFormEntity form = new UrlEncodedFormEntity(nameValuePairs);
String formContent = form.getContent();
String encodedFormContent = "";
char key = 'K';
for (int i = 0; i<formContent.length(); i++) {
encodedFormContent += formContent.charAt(i) ^ key;
}
httppost.setEntity(new StringEntity(encodedFormContent));
然后解密服务器端的正文。 XORing方法的安全性最差,但最简单的一点。您可以在实践中尝试AES。