2013-01-09 36 views
0

我提交了一个App亚马逊应用商店的要求,但被拒绝,因为这个问题:加密参数发布与循环J

这个程序似乎发送未加密的敏感信息。在这种情况下,电子邮件和密码正在以明文形式发送。请更新应用程序以加密所有敏感信息。

我为我的http请求使用了LoopJ,我不确定为什么我的数据没有被加密,或者如何加密它。 这是我的代码。

public class MYAuthClient { 
    private static final String BASE_URL = "http://www.mywebservice.net/"; 

    private static AsyncHttpClient client = new AsyncHttpClient(); 

    public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
     client.post(getAbsoluteUrl(url), params, responseHandler); 
    } 

    private static String getAbsoluteUrl(String relativeUrl) { 
     return BASE_URL + relativeUrl; 
    } 
} 

发出请求。我这样做。

RequestParams params = new RequestParams(); 
    params.put("email", login_email); 
    params.put("password", login_pass); 
    MYAuthClient.post("api/v1/tokens.json", params, new AsyncHttpResponseHandler() { 
     @Override 
     public void onStart() { 
      // Initiated the request 
     } 

     @Override 
     public void onSuccess(String response) { 
      // Successfully got a response 

     } 

     @Override 
     public void onFailure(Throwable e, String response) { 
      // Response failed :(
      Toast.makeText(getApplicationContext(), "Failed to connect to server", Toast.LENGTH_LONG).show(); 
     } 

    }); 

任何帮助或链接到与LoopJ一起使用加密的例子? 谢谢!

+0

所以你认为你在哪里加密它们?你只是把它们作为一个请求的参数,除非你在代码中预先加密它们,否则它们不会被加密;您的代码不会显示加密工作。考虑散列而不是加密。 –

+0

这就是我要问的。我不知道如何加密它。如果有人可以发布一个有用的例子。 –

+0

这里是一个示例如何散列密码:http://stackoverflow.com/questions/5980658/how-to-sha1-hash-a-string-in-android –

回答

1

这里最好的解决方案是为您的webservice提供一个https端点。

然后在你的Android,更改为端点,以https像这样:

http://www.mywebservice.net/ 

成为

https://www.mywebservice.net/ 

您需要检查托管Web服务的服务器设置为服务器HTTPS。解决这个问题的办法超出了这个问题的范围。

+0

谢谢!我想我错过了那个。我99%肯定这应该能够解决亚马逊的问题。 –