在Java中提供各种哈希算法的库(如MD5、SHA1、SHA256等)是什么?

10

有没有一个简单的Java库在Maven仓库中,可以为我提供流行的哈希函数(如MD5、SHA1、SHA256和SHA512)的简单、一行代码的哈希方法?我真的不想重新发明轮子来完成这个任务。

2个回答

13

对于该类的其他用户,即使它具有公共构造函数,也不要实例化它,而是直接使用DigestUtils.function()。当然,构造函数应该被设置为私有。 - Maarten Bodewes
Bouncy Castle还拥有出色的Java密码学API。http://www.bouncycastle.org/documentation.html - user235273

11

1
javax.crypto.Mac 提供了消息认证,类似于“带密钥”的哈希。问题是关于摘要算法的。在这种情况下,应该使用 java.crypto.MessageDigest 类。 - Jcs
@MartinAndersson 你在说什么?问题是关于一个“单一库”包含所有这些算法,而答案提供了一个。他没有要求列出清单。为什么有人要重新“填充”正确的答案呢?你的评论毫无意义。如果你认为已经存在的答案不够好,你可以随时提供自己的答案。 - user207421
嗯,我想我会得到像你这样的回答。问题是当一个人不知道的时候才会问。内置的 MessageDigest 对于想要一个“简单”库的人来说已经足够了,这样他就不必“重新发明轮子”。如果用户要求一个 String 库,你会做同样的事情吗?给他找一个 String 库并推荐它?还是会提供 java.lang.String 的 JavaDoc 链接?我也可以问一下,提供建议库列表有什么害处吗?你自己是否喜欢只有有限数量的备选答案?感谢您的关心和反馈! - Martin Andersson
1
@MartinAndersson 如果 MessageDigest 已经足够了,那就没有讨论的必要了。如果用户要求一个 String 库,我会确实指向 java.lang.String 的 Javadoc,这正是我在这里为 MessageDigest 所做的。我更喜欢回答问题的答案。我并没有说提供建议库会有什么危害,但这不会回答这里所问的问题。你似乎在评论另一个问题,并且你也没有采纳提供自己答案的建议。请随意。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接