0

私は、一度登録すると、ログインするための Web サイトを持っています。ログインするために、php コードは次のようにしてパスワードが正しいかどうかを確認します。

       $subuser = stripslashes($subuser);
       $result = $database->confirmUserPass($subuser, md5($subpass));

$subuser は、ユーザーがログイン中に入力するユーザー名です。 $subpass は、ユーザーがログイン中に入力するパスワードです。

これで、php コードは指定されたパスワード ($subpass) を暗号化し、データベースをチェックして暗号化が一致するかどうかを確認します。

ここでの問題は次のとおりです。現在、Web サイト用のログインフォームが組み込まれた Java アプリケーションを作成しています。Java コードで PHP コードと同じことを実行したいと考えています。複数の場所を読みましたが、何をすべきかまだわかりません。これまでのJavaコードは次のとおりです。

String password = "pass";
        try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(password.getBytes(), 0, password.length());
        System.out.println(new BigInteger(1, md.digest()).toString(32));

        } catch(NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

このコードをJavaで実行すると、PHPと同じように暗号化された文字列が得られるはずですが、問題はそうではないことです... :(誰かが私が間違っている/見逃していることを知っていますか? ありがとう

さらに情報が必要な場合は、私に尋ねてください。できれば、この投稿を編集して追加の詳細を含めます。

4

1 に答える 1

0

4 行目と 5 行目を次のように変更します。

md.update(password.getBytes());
System.out.println(new BigInteger(1, md.digest()).toString(16));
于 2013-04-03T16:01:04.897 に答える