Бібліотека JavaScript MD5 (плюс переваги, використання та приклади)

Для перевірки даних про файли розробники JavaScript часто вимагають розробників JavaScript на клієнтській або серверній стороні. На сьогодні найпопулярнішою бібліотекою є бібліотека blueimp-md5.


Отримайте бібліотеку blueimp-md5

Ця бібліотека реалізує функцію хешування MD5, яка спочатку використовується для обчислення контрольної суми файлових даних (або будь-якого іншого рядка даних), а пізніше для перевірки цілісності даних файлів шляхом порівняння відомої контрольної суми з повторно обчисленою.

Нижче ми пояснимо, що таке MD5, але якщо ти схожий на мене і не цікавишся деталями, можеш перейти до наших розділів щодо впровадження на стороні клієнта та сервера..

Що таке MD5?

MD5 – це стандартизована одностороння функція, яка дозволяє відображати будь-які введення даних у вихідний рядок фіксованого розміру, незалежно від того, наскільки велика або мала вхідна рядок.

Графічне відображення входів, хеш-функцій та хеш-сум

Невелика зміна вводу різко змінює вихід.

Усі реалізації MD5 створюють 128-бітове хеш-значення з рядка даних, яке, як правило, виражається у вигляді 32-значного шістнадцяткового числа.

Наприклад, foo bar baz стає ab07acbb1e496801937adfa772424bf7.

Один і той же вхід даних завжди відображатиме один і той же вихід. Ідентичні виходи з різних входів рідкісні, але можуть трапитися.

У системах Linux md5sum є інструментом командного рядка для хешування MD5. Інші операційні системи мають подібні команди.

Давайте подивимось, як робити хешування MD5 в браузері (на стороні клієнта) та в середовищі NodeJS (на сервері).

Встановлення та використання на стороні клієнта

Спочатку завантажте бібліотеку md5.min.js і включіть її у свій HTML:

1 <скрипт src ="js / md5.min.js"></ сценарій>

Далі у коді програми JS ви можете обчислити шестигранний кодований хеш MD5 рядка, просто викликавши метод md5 зі значенням рядка як аргумент:

1 <ем>вар</ ем> хеш = md5 ("значення"); // "2063c1608d6e0baf80249c42e2be5804"

Нижче ми побачимо більше прикладів використання API бібліотеки.

Встановлення та використання на сервері з NodeJS

Щоб використовувати бібліотеку MD5 на стороні сервера з NodeJS, спочатку встановіть пакет blueimp-md5:

1 npm встановити blueimp-md5

Для простого прикладу, що показує, як пакет MD5 може використовуватися для хешування MD5 хеш-рядка URL-адреси запиту, створіть файл під назвою server.js із таким кодом:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

вимагати ("http") .createServer (функція (req, res) {

 

    var md5 = вимагати ("blueimp-md5"),

        url = вимагати ("URL"),

        query = url.parse (req.url). запит;

 

    res.writeHead (200, {"Тип вмісту": "текст / простий"});

 

    // обчислити та надрукувати хеш MD5 запиту URL:

    res.end (md5 (запит));

 

}) .слухати (8080, "localhost");

 

console.log ("Сервер працює за адресою http: // localhost: 8080 / відкрийте цю URL-адресу у своєму браузері, щоб побачити хеш MD5");

Тепер ми можемо запустити цю програму NodeJS:

1 вузол server.js

Якщо перейти до http: // localhost: 8080 /, ви побачите вихід MD5 цієї URL-адреси: 37a6259cc0c1dae299a7866489dff0bd.

Перегляд http: // localhost: 8080 /? Foo&бар&baz виробляє ще один хеш MD5.

Приклади API

Бібліотека має лише одну функцію, md5 (), яка може приймати до трьох аргументів:

  1. Вимагається: Вхідний рядок для хеджування MD5 повинен бути присутнім.
  2. Необов’язково: Значення ключа HMAC використовується для аутентифікації повідомлень з використанням криптографічних хеш-функцій, таких як MD5 у поєднанні з секретним загальним ключем.
  3. Необов’язково: Булеве значення, якщо встановлено значення “true”, кодує вихід у вигляді необробленого рядка. В іншому випадку висновок – це шістнадцятковий кодований рядок. Шестнадцяткова кодування є більш портативною, але необроблена рядок може бути простішою у використанні в деяких випадках.

Переглянемо кілька прикладів коду цього API:

Обчисліть шестигранний кодований хеш MD5 заданого рядкового значення:

1 var hash = md5 ("значення"); // "2063c1608d6e0baf80249c42e2be5804"

Обчисліть шістнадцятковий хеш-код HMAC-MD5 заданого значення рядка та ключа:

1 var hash = md5 ("значення", "ключ"); // ‘01433efd5f16327ea4b31144572c67f6’

Обчисліть необроблений хеш MD5 заданого рядкового значення:

1 var hash = md5 ("значення", нуль, правда); // ‘cxc1`x8dnx0bxafx80 $ x9cBxe2xbeXx04’

Обчисліть необроблений хеш HMAC-MD5 заданого значення рядка та ключа:

1 var hash = md5 ("значення", "ключ", правда); // ‘x01C>xfd_x162 ~ xa4xb3x11DW, gxf6 ‘

Попередження про безпеку та альтернативи MD5

Хоча захищеність функції хешування MD5 зараз вважається слабкою, оскільки вона недостатньо стійка до зіткнень, хеш-функція MD5 все ще дуже популярна з історичних причин та наявності реалізацій у всіляких середовищах.

Якщо ви хочете мати більш безпечну хеш-функцію, використовуйте дайджест повідомлень SHA 2 або SHA 3 замість MD5. Crypto-js – це хороша реалізація JavaScript хеш-функцій. На GitHub також є багато інших реалізацій.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Adblock
    detector