Библиотека, предоставляющая различные алгоритмы хеширования (MD5, SHA1, SHA256 и т. д.) в Java?

Есть ли простая библиотека для Java в репозитории Maven, которая предоставит мне простые однострочные хэш-методы для популярных хэш-функций, таких как MD5, SHA1, SHA256 и SHA512? Я бы очень не хотел изобретать велосипед, чтобы сделать это.


person Naftuli Kay    schedule 02.06.2011    source источник


Ответы (2)


Класс DigestUtils Apache Commons Codec подходит для упрощения использования класса MessageDigest, что, по-видимому, и является тем, что вы пытаетесь использовать в первую очередь.

person Vineet Reynolds    schedule 02.06.2011
comment
Для других пользователей этого класса не создавайте его экземпляр, даже если у него есть общедоступный конструктор, используйте DigestUtils.function() напрямую. Конструктор, конечно, должен был быть закрытым. - person Maarten Bodewes; 06.06.2011
comment
Bouncy Castle также имеет хорошие API-интерфейсы Java Cryptography. bouncycastle.org/documentation.html - person ; 06.02.2013

Он встроен: java.security.MessageDigest

person user207421    schedule 02.06.2011
comment
javax.crypto.Mac обеспечивает аутентификацию сообщений, которая представляет собой что-то вроде хэша с ключом. Вопрос был об алгоритмах дайджеста. В этом случае следует использовать класс java.crypto.MessageDigest. - person Jcs; 02.06.2011
comment
@MartinAndersson О чем ты говоришь? Вопрос касается «единой библиотеки» для всех этих алгоритмов, и ответ дает ее. Он не просил список. Почему кто-то должен повторно «заполнять» правильный ответ? Ваш комментарий бессмысленен. Вы всегда можете дать свой собственный ответ, если считаете, что те, что уже здесь, не подходят. - person user207421; 28.06.2013
comment
хм, полагал, что получу ответ, подобный вашему. Дело в том, что спрашиваешь, когда не знаешь. Встроенной MessageDigest более чем достаточно для тех, кто хочет простую библиотеку, чтобы ему не пришлось изобретать велосипед. Если бы пользователь попросил библиотеку String, вы бы сделали то же самое; найти ему библиотеку String и порекомендовать ее? Или вы бы предоставили ссылку на JavaDoc java.lang.String? Могу я также спросить, какой вред в предоставлении списка предлагаемых библиотек? Вы сами предпочитаете ответы с ограниченным количеством альтернатив? Спасибо за заботу и оставленный отзыв! - person Martin Andersson; 29.06.2013
comment
@MartinAndersson Если MessageDigest «более чем достаточно», это конец обсуждения. Если бы пользователь попросил библиотеку String, я бы действительно указал ему на Javadoc для java.lang.String,, и это именно то, что я сделал здесь для MessageDigest.. Я предпочитаю ответы, которые сами отвечают на вопрос. Я ничего не сказал о «вреде предоставления списка предлагаемых библиотек», но это не ответит на заданный здесь вопрос. Вы, кажется, комментируете другой вопрос, и вы точно не воспользовались предложением дать свой собственный ответ. Не стесняйтесь. - person user207421; 03.09.2013