PDA

Просмотр полной версии : MD5


ancient
25.09.2015, 23:33
MD5 (Message Digest 5) — 128-битный алгоритм хеширования

Для приведения примеров я создал класс MD5Util.java

в котором реализую два метода генерации MD5

Код:



public static String md5Custom(String st) {
MessageDigest messageDigest = null;
byte[] digest = new byte[0];
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(st.getBytes());
digest = messageDigest.digest();
} catch (NoSuchAlgorithmException e) {
// тут можно обработать ошибку
// возникает она если в передаваемый алгоритм в getInstance(,,,) не существует
e.printStackTrace();
}
BigInteger bigInt = new BigInteger(1, digest);
String md5Hex = bigInt.toString(16);
while( md5Hex.length()

Хеш содержит 128 бит (16 байт) поэтому мы в строке 17 указали 16 байтов, в строке 19 было указанно 32 так как обычно хеш 16 байтов представляется как последовательность из 32 шестнадцатеричных цифр.

Метод №2: Apache Common Codec

Для того чтобы использовать реализацию Apache Common Codec нужно подключить его к проекту.

Если использовать Maven то нужно подключить к вашему проекту зависимость:

Код:


[CODE]

commons-codec
commons-codec
1.9

И ниже пример использования:

public static String md5Apache(String st) {
String md5Hex = DigestUtils.md5Hex(st);

return md5Hex;
}


DigestUtils — это утильный класс позволяющий зашифровать данные в MD5 и другие типы шифрования.

Вызов методов утильного класса MD5Util.java со строкой devcolibri:

Код:



public static void main(String[] args) {
String st = "devcolibri";
System.out.println("Custom MD5:");
System.out.println(MD5Util.md5Custom(st));
System.out.println("Apache MD5:");
System.out.println(MD5Util.md5Apache(st));
}
Результат:
Custom MD5:
4fa25efdd84d2e2c9f206980d4ccfff1
Apache MD5:
4fa25efdd84d2e2c9f206980d4ccfff1

kick
25.09.2015, 23:51
И что тут такого? MD5 пример использования в Java (http://devcolibri.com/4604) Свои статьи надо писать а не гугла

Influence
26.09.2015, 00:00
И что тут такого? MD5 пример использования в Java (http://devcolibri.com/4604) Свои статьи надо писать а не гугла


или, в крайнем случае, делать перевод забугорных