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

如何在android中加密json数据并使用http方法发送?,json,encryption,Json,Encryption,我想在android中使用post方法将加密的json数据发送到服务器。这是我发送json数据的代码。如何加密 public String Update(String userid,String uname) { String response = null; ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(ne

我想在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();
}
公共字符串更新(字符串userid,字符串uname)
{
字符串响应=null;
ArrayList nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“用户id”,userid));
添加(新的BasicNameValuePair(“状态”,“更新”));
添加(新的BasicNameValuePair(“用户名”,uname));
尝试
{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(URL+操作\更新\用户名);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
ResponseHandler ResponseHandler=新BasicResponseHandler();
response=httpclient.execute(httppost,responseHandler);
JSONObject jsonObj=新的JSONObject(响应);
}
捕获(例外e)
{
}     
returnresponse.trim();
}

加密必须在两侧进行,方法取决于您希望从加密中得到什么。例如,如果你只是想保护你的用户免受中间人攻击,你可以使用http:</p> 另一个目的是向黑客隐藏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));
UrlEncodedFormEntity form=新的UrlEncodedFormEntity(nameValuePairs);
字符串formContent=form.getContent();
字符串encodedFormContent=“”;
字符键='K';

对于(int i=0;i1.RC4)来说,它是AES和静态密钥之间的中间站。2.加密文件是字节数据,而不是文本字符串。要使这些文件作为文本字符串传输,在传输之前使用Base64转换,当然在传输之后使用deconvert。你知道创建额外的帐户来投票给你自己的帖子会让你被暂停吗(禁止)?那只是作弊。我没有作弊。他们是真人,也是我的朋友。那也是作弊吗?他们不是你的朋友,但你在自己的帖子上投票。这个讨论至少对我来说不值得继续。但他们是真人,你之所以错误地、深深地相信他们是我,是因为他们使用了和我相同的IP因为我们大多数时候都在同一个网络中(公司和大学)。但是如果你能看到mac地址,它们是不同的(你不能确定).不要仅仅通过查看日志来快速判断。我的情况并非如此,但有时甚至有两个或两个以上的人使用同一台计算机,访问日志还不足以确保有一个人或多个人。