Подключение через CDN

Библиотеку Jsrsasign часто подключают в браузерные проекты без сборщиков, используя CDN, что позволяет сразу получить доступ ко всем криптографическим возможностям без установки npm-зависимостей и настройки сборки.

Самый распространённый способ — подключение через тег <script>, который загружает готовую сборку библиотеки из публичного CDN. После загрузки становится доступным глобальный объект KJUR, через который реализованы основные криптографические функции.

Подключение через cdnjs:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/10.8.6/jsrsasign-all-min.js"></script>

Подключение через jsDelivr:

<script src="https://cdn.jsdelivr.net/npm/jsrsasign/lib/jsrsasign-all-min.js"></script>

После загрузки скрипта библиотека становится доступной в глобальной области видимости без дополнительных импортов. Все модули объединены в единый файл, что упрощает использование в простых веб-страницах и прототипах.

Глобальное пространство имён KJUR

Основной интерфейс библиотеки сосредоточен в объекте KJUR. Он включает несколько подсистем:

  • KJUR.crypto — криптографические алгоритмы
  • KJUR.jws — работа с JSON Web Signature
  • KJUR.jwe — JSON Web Encryption
  • KJUR.asn1 — работа с ASN.1 структурами
  • KEYUTIL — утилиты для работы с ключами

Пример проверки доступности:

console.log(typeof KJUR !== "undefined");

Использование RSA после подключения через CDN

После подключения библиотеки через CDN становится доступной работа с RSA-ключами и цифровыми подписями.

Генерация ключевой пары:

const rsa = new KJUR.crypto.RSAKey();
rsa.generate(2048, "10001");

Экспорт публичного ключа:

const pubKey = KEYUTIL.getPEM(rsa);
console.log(pubKey);

Шифрование данных:

const cipher = rsa.encrypt("hello");

Работа с JWT через CDN-подключение

Jsrsasign часто используется для создания и проверки JSON Web Token без серверной зависимости.

Создание JWT:

const header = { alg: "HS256", typ: "JWT" };
const payload = { sub: "1234567890", name: "Alice", iat: 1516239022 };

const sHeader = JSON.stringify(header);
const sPayload = JSON.stringify(payload);

const secret = "secret-key";

const jwt = KJUR.jws.JWS.sign("HS256", sHeader, sPayload, secret);
console.log(jwt);

Проверка JWT:

const isValid = KJUR.jws.JWS.verify(jwt, secret, ["HS256"]);

Различие между полными и модульными сборками

При подключении через CDN доступны разные варианты сборок:

  • jsrsasign-all-min.js — полная минифицированная версия
  • jsrsasign-all.js — полная неминифицированная версия
  • модульные файлы (используются реже в CDN-сценариях)

Полная сборка содержит все алгоритмы: RSA, ECDSA, SHA, HMAC, X.509, JWT и ASN.1 обработку. Это увеличивает размер файла, но исключает необходимость выбора отдельных модулей.

Работа с цифровыми подписями

После загрузки через CDN доступна работа с RSA и ECDSA подписями.

Создание подписи:

const sig = new KJUR.crypto.Signature({ alg: "SHA256withRSA" });
sig.init(rsa);
sig.updateString("message");
const signature = sig.sign();

Проверка подписи:

const isValid = sig.verify(signature);

Использование в чистом браузерном окружении

CDN-подключение позволяет использовать библиотеку без сборки и установки. Весь функционал работает напрямую через глобальные объекты, что делает интеграцию предсказуемой в статических HTML-проектах.

Пример минимальной HTML-страницы:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Jsrsasign CDN</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/10.8.6/jsrsasign-all-min.js"></script>
</head>
<body>
<script>
  const jwt = KJUR.jws.JWS.sign(
    "HS256",
    JSON.stringify({ alg: "HS256", typ: "JWT" }),
    JSON.stringify({ data: "example" }),
    "secret"
  );

  console.log(jwt);
</script>
</body>
</html>

Особенности загрузки через CDN

При использовании CDN важно учитывать порядок загрузки скриптов. Любой код, использующий KJUR, должен выполняться только после полной загрузки библиотеки.

Проверка доступности:

window.onl oad = function () {
  console.log(KJUR);
};

Асинхронная загрузка:

<script src="https://cdn.jsdelivr.net/npm/jsrsasign/lib/jsrsasign-all-min.js" defer></script>

Совместимость и окружение выполнения

Jsrsasign через CDN работает в:

  • современных браузерах (Chrome, Firefox, Edge, Safari)
  • статических HTML-страницах
  • легковесных веб-приложениях без сборщиков

Не требует Node.js или npm, так как весь код выполняется на стороне клиента.

Область применения CDN-подключения

Подключение через CDN применяется в сценариях, где важна минимальная настройка окружения:

  • прототипирование криптографических функций
  • демонстрационные приложения
  • учебные примеры работы с JWT и RSA
  • статические сайты с клиентской криптографией