Вам нужно зашифровать пароль либо другие данные, в таком случае можно использовать MD5 шифрование.
MD5 (Message Digest 5) — 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом в 1991 году. Предназначен для создания «отпечатков» или дайджестов сообщения произвольной длины и последующей проверки их подлинности.
Для приведения примеров я создал класс MD5Util.java в котором реализую два метода генерации MD5.
Метод #1: Собственная реализация
Ниже приведен пример реализации:
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() < 32 ){ md5Hex = "0" + md5Hex; } return md5Hex; }
Хеш содержит 128 бит (16 байт) поэтому мы в строке 17 указали 16 байтов, в строке 19 было указанно 32 так как обычно хеш 16 байтов представляется как последовательность из 32 шестнадцатеричных цифр.
Метод #2: Apache Common Codec
Этот метод заключается в использовании готовой реализации MD5.
Для того чтобы использовать реализацию Apache Common Codec нужно подключить его к проекту. Если использовать Maven то нужно подключить к вашему проекту зависимость:
<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency>
И ниже пример использования:
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
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
21 комментариев к статье "MD5 пример использования в Java"