1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Скрыть объявление

Привет посетитель! У нас на форуме тебе откроются дополнительные разделы, которые скрыты от гостей! А так же ты найдёшь много полезной информации.

MD5

Тема в разделе "Java / Scala", создана пользователем Ancient, 25 сен 2015.

  1. Ancient

    Ancient L2JOrigon Пользователь

    Регистрация:
    20 сен 2015
    Сообщения:
    478
    Симпатии:
    69
    Баллы:
    163
    Обратите внимание, если Вы хотите провести сделку с данным пользователем, на то, что он заблокирован.
    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() < 32 ){
            md5Hex = "0" + md5Hex;
        }
        return md5Hex;
    }
    Хеш содержит 128 бит (16 байт) поэтому мы в строке 17 указали 16 байтов, в строке 19 было указанно 32 так как обычно хеш 16 байтов представляется как последовательность из 32 шестнадцатеричных цифр.

    Метод №2: Apache Common Codec
    Для того чтобы использовать реализацию 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
    
     
  2. kick

    kick Магистр Йода Администратор

    Регистрация:
    20 янв 2015
    Сообщения:
    4.917
    Симпатии:
    3.498
    Баллы:
    6.235
  3. Influence

    Influence Бывалый Проверенный

    Регистрация:
    14 июн 2015
    Сообщения:
    861
    Симпатии:
    417
    Баллы:
    565
    или, в крайнем случае, делать перевод забугорных
     
    BrightAngel нравится это.