1

私はこの方法で MD5 を作成します:

public void encrypeUsername(String sessionid)
    {
        byte[] defaultBytes = sessionid.getBytes();
        try
        {
            MessageDigest algorithm = MessageDigest.getInstance("MD5");
            algorithm.reset();
            algorithm.update(defaultBytes);
            byte messageDigest[] = algorithm.digest();

            StringBuffer hexString = new StringBuffer();
            for (int i = 0; i < messageDigest.length; i++)
            {
                hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
            }
            System.out.println("sessionid " + sessionid + " md5 version is " + hexString.toString());
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }



    }

入力 123456 の場合、MD5 を取得します: e1adc3949ba59abbe56e057f2f883e

結果を認証する別の方法を作成したいと考えています。

たとえば、e1adc3949ba59abbe56e057f2f883e と「123456」を入力すると、結果として true/false が得られます。

これを達成する方法はありますか?

ありがとう、レイ。

4

1 に答える 1

3
String pass = "123456";
String secret = "e1adc3949ba59abbe56e057f2f883e";
if encrypeUsername(pass).equals(secret) System.out.printl("ok!")

md5 は一方向であることを忘れないでください。シークレットからパスワードを取り戻すのは困難です*。

(*)最近では、脆弱なパスワードはそれほど難しくありません。

于 2012-10-23T13:14:06.280 に答える