В JavaScript по умолчанию нет встроенной функции генерации MD5. Сегодня я покажу, как создать хеш MD5 на JavaScript с помощью библиотеки blueimp-md5.
Еще по теме: Кража NTLM-хеша с помощью PDF-файла
Давайте начнем с краткого введения в тему, а затем рассмотрим использование библиотек в своем проекте.
Использование MD5 с JavaScript
JavaScript — это язык программирования, который используется для разработки веб-сайтов и часто используется с HTML и CSS. JavaScript обычно используется для добавления на сайт динамического элемента, так как он может использовать переменные и более продвинутые функции, чем HTML и CSS.
JavaScript размещается в самом коде или во внешнем файле. Для добавления кода JavaScript на страницу можно использовать теги:
1 |
<script></script> |
Которые рекомендуется, но не обязательно, помещать внутри контейнера:
1 |
<head> |
Выглядит так:
1 2 3 |
<script> document.getElementById("mydiv").innerHTML = "JavaScript!"; </script”> |
MD5 — это криптографический алгоритм, используемый для хранения паролей в базе данных.
Пример:
1 |
foobar ⇒ 3858f62230ac3c915f300c664312c63f |
Использование MD5 для хранения паролей уже небезопасно, но он по-прежнему используется для других приложений, и поэтому он может понадобиться вам в вашем коде JavaScript.
Лучший способ прикрутить генерацию хеша MD5 в JavaScript — использовать blueimp-md5. Библиотека blueimp-md5 совместима с большинством проектов. Вы можете использовать ее с серверными средами, такими как Node.js, загрузчиками модулей, такими как RequireJS или напрямую с браузерами.
Как сгенерировать хеш MD5 с помощью JavaScript
Самый простой способ для небольшого проекта — загрузить файл blueimp-md5 из репозиротия GitHub, но для установки библиотеки на сервер, также можно использовать NodeJS. Рассмотрим оба способа.
Установка на стороне клиента
Для небольшого проекта, можете просто добавить минимизированную версию библиотеки в свой проект:
Откройте официальный репозитирой проекта и в папке «js», найдите файл md5.min.js.
Загрузите его на свой компьютер и сохраните в своем проекте.
Вы также можете отобразить RAW версию файла и скопировать и вставить код в свой проект.
После этого можно импортировать и использовать md5.min.js в своем HTML, добавив:
1 |
<script src="js/md5.min.js"></script> |
Для примера, я создал небольшой проект. HTML-код и содержимое папки выглядят так:
Как видите, после импорта библиотеки пользоваться ею довольно просто.
Просто используйте функцию md5(), как что-то нативное:
1 |
var hash = md5("value") |
Вот мой HTML-код:
1 2 3 4 5 6 7 8 9 10 11 12 |
<html> <head> <title>Tests InfosecScout</title> </head> <body> <script src="md5.min.js"></script> <script> var hash = md5("value") alert(hash) </script> </body> </html> |
Теперь, при открытии HTML-страницы в своем браузере, вы увидите всплывающее окно со значением MD5:
Установка на стороне сервера
Если вы используете NodeJS, вы, вероятно, уже знаете, как это сделать, но вот краткий обзор основных шагов:
Чтобы использовать серверную библиотеку MD5 для NodeJS, сначала установите blueimp-md5:
1 |
npm install blueimp-md5 |
Затем создайте файл server.js со следующим содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
require('http') .createServer(function (req, res) { // The md5 module exports the md5() function: var md5 = require('./md5'), // Use the following version if you installed the package with npm: // var md5 = require("blueimp-md5"), url = require('url'), query = url.parse(req.url).query res.writeHead(200, { 'Content-Type': 'text/plain' }) // Calculate and print the MD5 hash of the url query: res.end(md5(query)) }) .listen(8080, 'localhost') console.log('Server running at http://localhost:8080/') |
Запустите приложение с помощью:
1 |
node server.js |
Проведите быстрый тест, введя в браузере адрес:
1 |
http://localhost:8080/ |
Вы должны увидеть вывод MD5.
Значение хеша MD5 будет меняться каждый раз при обновлении страницы. Поэтому открытие следующей страницы приведет к созданию еще одного хэша MD5:
1 |
http://localhost:8080/?foo&bar&baz |
Думаю вы поняли.
Заключение
Теперь вы знаете, как генерировать хеши MD5 в JavaScript. Надеюсь статья была полезна.
РЕКОМЕНДУЕМ:
- Куки стиллер на JavaScript
- Используем радужные таблицы для взлома хешей
- Использование Mimikatz для извлечения хешей Windows
Какие преимущества использования blueimp-md5 перед другими библиотеками?
Blueimp-md5 — простой интерфейс для работы с хешами MD5 в JavaScript, имеет хорошую документацию и широко используется в сообществе разработчиков.
Как blueimp-md5 работает на стороне сервера?
Blueimp-md5 предназначен для использования на стороне клиента (в браузере), поэтому для генерации хешей на стороне сервера лучше использовать другие библиотеки, такие как crypto в Node.js, которые предоставляют более широкие возможности криптографии.
Понятно. Спасибо!