如何加密json数据并在android中使用http方法发送?

时间:2015-06-06 08:31:56

标签: json encryption

我想在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();
}

1 个答案:

答案 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。