Web Crypto API
Встроенный в браузер криптографический API, доступный через window.crypto.subtle. Построен на промисах, поддерживает AES, SHA, RSA, ECDSA, ECDH, HKDF и PBKDF2. Стандарт с ~2016 года, широко реализован.
Лучше JS-библиотек вроде CryptoJS и sjcl: нативные реализации работают за константное время и используют аппаратное ускорение. Ключи не покидают процесс браузера — объекты CryptoKey непрозрачны. Ограничения: стандартизованы AES-GCM, RSA-OAEP и ECDSA, а ChaCha20 и Ed25519 добирались до стандарта долго (Ed25519 появился в Chrome 113, 2023). Для современных шифров есть обходной путь — WebAssembly-сборка libsodium. Классическое применение: веб-приложения со сквозным шифрованием (Standard Notes, ProtonMail) и шифрование на клиенте перед загрузкой.