从Android应用程序登录网站。无法发送POST请求。使用GET请求发送密码是否可以?我应该加密吗?

时间:2012-10-22 04:48:37

标签: php android post android-intent get

我正在尝试从我的Android应用程序登录我的网站。显然不可能发送POST请求,因此唯一的方法是发送GET请求。这样发送密码好吗?我应该以某种方式加密吗?

3 个答案:

答案 0 :(得分:1)

执行此操作的方法,您应该使用base64_encode函数对您的详细信息进行编码,并将其传递给“GET”参数。

此外,您可以添加一些内容以混合密码。因此,这取决于您希望如何显示和传递登录凭据。

*注意:对于移动设备,我认为它不能像PHP中的bcrypt一样使用加密功能。

希望这有帮助!

答案 1 :(得分:0)

我认为您无法通过HTTP GET发送设备用户的凭据。如果您可以通过一些奇怪的编码方法进行GET,那么除非加密并建议使用SSL,否则它不会安全。但是,它很可能通过HTTP POST,也可以加密。您应该使用SSL进行POST。如果您需要参考,可以使用以下示例代码。

    case R.id.login_login_but:
        Toast.makeText(this, "Logging in...", Toast.LENGTH_SHORT).show();

        ArrayList<NameValuePair> postLogin = new ArrayList<NameValuePair>();
        postLogin.add(new BasicNameValuePair("post_user", "User"));
        postLogin.add(new BasicNameValuePair("post_pass", "Pass));

        try {
            String response = null;
            response = CustomHttpClient.executeHttpPost(
                    "http://giveaway.synamegames.com/appfiles/login.php", postLogin);
            String res = response.toString();
            res = res.replaceAll("\\s+", "");

            if (res.equals(1)) {
            // logged in
            } else {
            // incorrect user or password
            }

        } catch (Exception e) {
            Toast.makeText(this, "Server timeout please try again later. You must have internet.", Toast.LENGTH_SHORT).show();
        }
    break;

我使用的PHP脚本是......

<?php
$username=$_POST['post_user'];
$password=$_POST['post_pass'];
$user = 'db_user';
$pswd = 'db_password';
$db = 'db_name';
$server = 'www.domain.com';
$conn = mysql_connect($server, $user, $pswd);
mysql_select_db($db, $conn);
$query=mysql_query("SELECT * FROM users  WHERE  pass =('$password') AND user = $username")or die(mysql_error());

if(mysql_num_rows($query)==1) {
echo 1;
} else {
echo 0;
}
mysql_close($conn);
?>

答案 2 :(得分:0)

您可能必须同时执行加密和发送POST请求。如果您的登录过程可以作为API使用,则可以使用WebRESTClient执行相同的操作..

此外,您可以执行简单的散列操作

MessageDigest md5Hash = MessageDigest.getInstance("MD5");
mDigest = md5Hash.digest(password.getBytes());
String hashedMessage = new String(Hex.encodeHex(mDigest));