【问题标题】:How can I create the hash of a webpage in java?如何在java中创建网页的哈希?
【发布时间】:2010-11-17 07:58:47
【问题描述】:

我需要在 java 中使用 SHA1 或 MD5 创建网页 html 的哈希值(来自其 URL),但我不知道该怎么做...你能帮我吗?

【问题讨论】:

  • 网址的哈希值?还是 HTML?
  • 对不起,我忘记了...我需要 html 的哈希值。

标签: java hash md5 sha


【解决方案1】:

拉斐尔·迪法齐奥:

您可以使用此函数从字符串生成 MD5 作为 HashValue;例如,

   String hashValue = MD5Hash("URL or HTML".getBytes());


  /**
     * MD5 implementation as Hash value 
     * 
     * @param a_sDataBytes - a original data as byte[] from String
     * @return String as Hex value 
     * @throws NoSuchAlgorithmException 
     */

    public static String MD5Hash(byte[] dataBytes) throws NoSuchAlgorithmException {
        if( dataBytes == null) return "";

        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(dataBytes);
        byte[] digest = md.digest();

        // convert it to the hexadecimal 
        BigInteger bi = new BigInteger(digest);
        String s = bi.toString(16);
        if( s.length() %2 != 0)
        {
            s = "0"+s;
        }
        return s;
    }

我希望它有所帮助。请让我们知道这个问题的方向是否正确。

老虎。

【讨论】:

  • 谢谢,这就是我要找的。我将测试这个函数并尝试使其适应我的代码。
【解决方案2】:

DigestUtils.sha(String) 应该为 URI 或网页的 HTML 完成这项工作,但如果这是问题的一部分,则需要从其 URI 获取页面的 HTML。如果是这样,您可能需要考虑使用 Commons HttpClient to GET 页面。

【讨论】:

  • 是的,它会,但不是 java 标准库。我不想使用不必要的库。
  • 如果这是一个约束,它应该在问题中。此外,定义必要的,因为重新实现已经在经过良好测试的库中提供的东西似乎是不必要的高度。
  • 这不是我可以使用外部库的约束,但我不确定我不能使用标准库和一些编码来做到这一点。当然你是对的,最好使用经过良好测试的库,但我不知道 java api 是否提供类似的东西..
猜你喜欢
  • 2011-09-20
  • 2010-09-06
  • 2012-05-30
  • 1970-01-01
  • 2011-04-20
  • 2021-06-23
  • 1970-01-01
  • 2013-12-20
  • 2010-09-07
相关资源
最近更新 更多