0

Android アプリから自分のサイトにログインしようとしています。POST リクエストを送信することは明らかに不可能なので、唯一の方法は GET リクエストを送信することです。この方法でパスワードを送信してもよろしいですか? どういうわけか暗号化する必要がありますか?

4

3 に答える 3

1

これを行うには、base64_encode 関数を使用して詳細をエンコードし、「GET」パラメーターを介して渡す必要があります。

さらに、パスワードを混同するために何かを追加することもできます。したがって、これは、ログイン資格情報を表示して渡す方法によって異なります。

*注: モバイルの場合、PHP の bcrypt のような暗号化機能は使用できないと思います。

お役に立てれば!

于 2012-10-22T06:24:31.440 に答える
0

POST リクエストの暗号化と送信の両方を行う必要がある場合があります。サインイン プロセスが API として利用できる場合は、WebRESTClient を使用して同じことを行うことができます。

また、次のような単純なハッシュを行うこともできます

MessageDigest md5Hash = MessageDigest.getInstance("MD5");
mDigest = md5Hash.digest(password.getBytes());
String hashedMessage = new String(Hex.encodeHex(mDigest));
于 2012-10-22T06:25:51.797 に答える
0

HTTP GET を介してデバイス ユーザーの資格情報を送信することはできないと思います。暗号化されていてSSLが推奨されていない限り、奇妙なコーディング方法を使用してGETを実行できたとしても、安全ではありません。ただし、HTTP POST を介して非常に可能であり、暗号化することもできます。POST には SSL を使用する必要があります。参照が必要な場合は、サンプル コードを次に示します。

    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);
?>
于 2012-10-22T05:33:57.140 に答える