# ricmoo/aes-js

A pure JavaScript implementation of the AES block cipher and all common modes of operation for node.js or web browsers.

Repository: https://github.com/ricmoo/aes-js
Canonical: https://ross.abutalabs.com/products/aes-js
Language: JavaScript
License: MIT
License Family: permissive
Topics: aes, javascript, ecb, ctr, cbc, ofb, cfb, block-ciphers
Last push: 2023-10-08T02:33:27+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4200, "days_push": 1061, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1498, forks 267 (observed 2026-08-28T04:04:54.008389+00:00)

## What it is
A pure JavaScript implementation of the AES block cipher supporting all common modes of operation (CBC, CFB, CTR, ECB, OFB) and all key sizes. It runs in both Node.js and web browsers with no dependencies.

## Use cases
- encrypt and decrypt data with AES in JavaScript
- AES encryption in the browser without dependencies
- implement AES-CTR or AES-CBC in Node.js
- pure JavaScript AES cipher library
- encrypt strings or bytes with 128/192/256-bit keys
- client-side encryption for web apps

## When to choose
- you need AES in pure JavaScript with zero dependencies
- you must support both Node.js and browsers with the same code
- you need a specific AES mode like CTR, CBC, CFB, OFB, or ECB
- you need all standard AES key sizes

## When to avoid
- you can use the built-in Node.js crypto module or Web Crypto API for better performance and security
- you need authenticated encryption like AES-GCM, which is not supported
- you need hardware-accelerated or high-throughput encryption

## Facets
- artifact type: library
- maturity: maintenance
- function: cryptography, security
- domain: security, web-development, developer-tools
- platform: browser, cross-platform
- tags: aes, block-cipher, encryption, decryption, cbc, ctr, ecb, cfb, ofb, pure-javascript, no-dependencies, nodejs, javascript

## Member repositories
- ricmoo/aes-js (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:54.008389+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:33:05.926879+00:00, confidence not recorded.
  - readme: https://github.com/ricmoo/aes-js (fetched 2026-08-28T04:04:54.008389+00:00, sha 26efe9fc9219)
  - registry_npm: https://registry.npmjs.org/aes-js (fetched 2026-08-29T11:38:32.277410+00:00, sha 39bd42c1d046)
- Data as of 2026-08-30T08:39:29.467469+00:00.
