UNPKG

base64-ct

Version:

Safe, constant-time Base64 encoding and decoding in pure JavaScript, with support for common Base64 variants.

47 lines (33 loc) 998 B
# Safe Base64 codecs for JavaScript A pure JavaScript port of the libsodium base64 codecs. Features: * Supports traditional and URL-safe variants, with or without padding * Rejects non-canonical padding * Constant-time (best-effort), suitable for encoding/decoding secrets * Characters can be ignored by the decoder Available on NPM: [base64-ct](https://www.npmjs.com/package/base64-ct) Usage: - Traditional alphabet, padding: ```js const codec = new Base64(true); const b64 = codec.encode(data); const data2 = codec.decode(b64); ``` - Traditional alphabet, no padding: ```js const codec = new Base64(false); const b64 = codec.encode(data); const data2 = codec.decode(b64); ``` - URL-safe, no padding: ```js const codec = new Base64UrlSafe(false); const b64 = codec.encode(data); const data2 = codec.decode(b64); ``` - URL-safe, padding, ignoring spaces and `\n`: ```js const codec = new Base64UrlSafe(true, " \n"); const b64 = codec.encode(data); const data2 = codec.decode(b64); ```