在 android 中上传到服务器之前验证数据

Authenticate data before upload on server in android

我正在开发一个 android 应用程序,我在其中向服务器发送一些文本和文件。我正在使用 JSON 将文件上传到服务器。但我想提供上传数据的安全性。数据只能从 android 设备上传。在我的例子中,如果我使用邮递员发送数据,它会上传到服务器上。

php 开发人员告诉我,"send data in header"。我 google 它并找到了一些代码。

Authentication.java

public class Authentication  {

    public void AuthenticateData(String url) {

        HttpPost httppost = new HttpPost(url);

        httppost.addHeader("userId","someName");
        httppost.addHeader("secretKey","password");

    }
}

我就是这样用的。

Authentication authentication
URL = "url_to_upload_data";
JSONParser jParser = new JSONParser();
.
.
authentication.AuthenticateData(URL);
.
List<NameValuePair> param = new ArrayList<NameValuePair>();
param.add(new BasicNameValuePair("emailid", emailid));
param.add(new BasicNameValuePair("device_reg", deviceRegNo));
param.add(new BasicNameValuePair("message",message));"));
JSONObject json_Object = jParser.makeHttpRequest(URL, "POST", param);

这是正确的做法吗?它会安全吗?

您的代码的问题是 AuthentificateData 没有返回任何内容。

您的方法的问题是您假设密码可以安全地存储在 phone 上。如果你把它放在代码中,即使在混淆之后任何人都可以反编译你的源代码并读取它的值。

为了提供安全传输,您需要使用非对称加密,也称为 public key cryptography。 public 密钥可以被任何人知道并且存储在 phone 中是安全的。您必须保护您的服务器不泄露您的私钥。

为了帮助进行身份验证,您还可以使用 digital signatures.

您不必从头开始实施它们。您可以在此处 simple examples 开始。