Библиотеку 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.crypto — криптографические алгоритмыKJUR.jws — работа с JSON Web SignatureKJUR.jwe — JSON Web EncryptionKJUR.asn1 — работа с ASN.1 структурамиKEYUTIL — утилиты для работы с ключамиПример проверки доступности:
console.log(typeof KJUR !== "undefined");
После подключения библиотеки через 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");
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 — полная неминифицированная
версияПолная сборка содержит все алгоритмы: 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 важно учитывать порядок загрузки скриптов.
Любой код, использующий 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 работает в:
Не требует Node.js или npm, так как весь код выполняется на стороне клиента.
Подключение через CDN применяется в сценариях, где важна минимальная настройка окружения: