【问题标题】:How to Authenticate MD5如何验证 MD5
【发布时间】:2012-10-23 13:09:51
【问题描述】:

我以这种方式创建 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”,那么我得到的结果是:真/假。

知道如何实现吗?

谢谢, 射线。

【问题讨论】:

  • 呃...只是再次加密输入?
  • 我认为 mybe 有更快的算法然后只是再次重新加密。谢谢。

标签: java md5 md5sum


【解决方案1】:
String pass = "123456";
String secret = "e1adc3949ba59abbe56e057f2f883e";
if encrypeUsername(pass).equals(secret) System.out.printl("ok!")

记住 md5 是单向的。很难*再次从秘密中取回密码。

(*)如今对于弱密码来说并不那么难。

【讨论】:

  • 这行得通吗?该方法定义为public void,因此它不会返回要比较的字符串的哈希版本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 2016-09-04
  • 1970-01-01
相关资源
最近更新 更多