【问题标题】:Library providing various hash algorithms (MD5, SHA1, SHA256, etc) in Java?在 Java 中提供各种哈希算法(MD5、SHA1、SHA256 等)的库?
【发布时间】:2011-06-02 13:59:41
【问题描述】:

在 Maven 存储库中是否有一个简单的 Java 库,它可以为我提供简单的单行散列方法,用于流行的散列函数,例如 MD5、SHA1、SHA256 和 SHA512?我真的很讨厌不得不重新发明轮子来做到这一点。

【问题讨论】:

    标签: java md5 sha1 sha256 sha512


    【解决方案1】:

    Apache Commons CodecDigestUtils 类适用于简化 MessageDigest 类的使用,这似乎是您首先尝试使用的。

    【讨论】:

    • 对于这个类的其他用户,即使有公共构造函数也不要实例化,直接使用DigestUtils.function()。构造函数当然应该是私有的。
    • Bouncy Castle 也有很好的 Java Cryptography API。 bouncycastle.org/documentation.html
    【解决方案2】:

    它是内置的:java.security.MessageDigest

    【讨论】:

    • javax.crypto.Mac 提供类似于“键控”哈希的消息身份验证。问题是关于摘要算法的。在这种情况下,应该使用 java.crypto.MessageDigest 类。
    • @MartinAndersson 你在说什么?问题是关于所有这些算法的“单一库”,答案提供了一个。他没有要名单。为什么有人要重新“填充”一个正确的答案?你的评论是空洞的。如果您认为此处已有的答案不够充分,您可以随时提供自己的答案。
    • 嗯,我想我会得到像你这样的回应。事情是一个人不知道的时候问。内置的MessageDigest 对于想要一个“简单”库的人来说绰绰有余,这样他就不必“重新发明轮子”。如果用户要求使用String 库,您会这样做吗?给他找一个字符串库并推荐它?或者您会提供指向 java.lang.String 的 JavaDoc 的链接吗?请问提供建议库列表有什么害处?你自己喜欢选择有限的答案吗?感谢您的关心和提供反馈!
    • @MartinAndersson 如果MessageDigest '绰绰有余',那么讨论就结束了。如果用户要求String 库,我确实会将他指向java.lang.String, 的Javadoc,而这正是我在这里为MessageDigest. 所做的,我更喜欢自己回答问题的答案。我没有说过“提供建议库列表的危害”,但它不会回答这里提出的问题。您似乎在评论一个不同的问题,并且您还没有完全接受该建议来提供您自己的答案。随意。
    猜你喜欢
    • 2014-02-07
    • 2010-12-08
    • 2012-02-09
    • 2015-01-02
    • 2011-08-16
    • 2010-09-28
    • 2012-12-02
    • 2011-11-13
    • 1970-01-01
    相关资源
    最近更新 更多