b64web
Base64 and Base64URL (RFC 4648) encoding/decoding/validation for web browsers
Features
- Encodes binary data or text string to Base64 or Base64URL data.
- Decodes Base64 or Base64URL data to binary data or text string.
- Autodetects alphabets and padding.
- Validates Base64/Base64URL data, respects canonical encodings.
- ES6 module, typings available
Install
npm i b64web
Usage
; // Base64/Base64URL encoded ASCII string; // binary data; //text string data
Decoding Base64 data
// decode 'b64s' to binary datadata = decodeb64s;// decode 'b64s' to binary data, convert the data to text string using text decoder 'decoder'text = decodeb64s, decoder;
Encoding Base64 data
// encode binary data 'data' to Base64 ASCII stringb64s = encodedata;// encode binary data 'data' to Base64URL ASCII stringb64s = encodedata, ; // encode text sting 'text' to binary data, convert to Base64 ASCII stringb64s = encodetext;
Validating Base64 data
// validate Base64/Base64URL encoded ASCII string;
Examples
; ;; // '😁 💣!'; // [248,255,255,255] // Encode text string; // 'Zm9vYg=='; // 'Zm9vYg'; // '8J+YgSDwn5KjIQ=='; // '8J-YgSDwn5KjIQ' // Decode to text string; // 'foob'; // 'foob'; // '😁 💣!'; // '😁 💣!' // Decode to binary data; // [102,111,111,98]; // [102,111,111,98]; // [240,159,152,129,32,240,159,146,163,33]; // [240,159,152,129,32,240,159,146,163,33] // Encode binary data; // 'Zm9vYg=='; // '8J+YgSDwn5KjIQ'; // '+P///w=='; // '-P___w==' // Validate; // true; // true; // false, padding required; // false, non-canonical; // true; // false, BASE64 required; // false, BASE64URL required // TEXT <-> BINARY; // [102,111,111,98]; // 'foob'
Encoding a text string is equivalent to converting the text string to a binary buffer and encoding the buffer.
encode(text, { encoder }) === encode(stob(text, encoder))
Decoding Base64 data to text string is equivalent to decoding the data to binary buffer and converting the buffer.
decode(data, decoder) === btos(decode(data), decoder)