Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Documentationbreadcrumb arrow Grafana k6breadcrumb arrow JavaScript APIbreadcrumb arrow k6/encodingbreadcrumb arrow b64decode( input, [encoding], [format] )
Open source

b64decode( input, [encoding], [format] )

Decode the passed base64 encoded input string into the unencoded original input in either binary or string formats.

ParameterTypeDescription
inputstringThe string to base64 decode.
encoding (optional)stringThe base64 encoding to use.
Available options are:
- “std”: the standard encoding with = padding chars and + and / characters in encoding alphabet. This is the default.
- “rawstd”: like std but without = padding characters.
- “url”: URL safe version of std, encoding alphabet doesn’t contain + and / characters, but rather - and _ characters.
- “rawurl”: like url but without = padding characters.
format (optional)stringIf "s" return the data as a string, otherwise if unspecified an ArrayBuffer object is returned.

Returns

TypeDescription
ArrayBuffer / stringThe base64 decoded version of the input string in either string or ArrayBuffer format, depending on the format parameter.

Example

JavaScript
import { check } from 'k6';
import encoding from 'k6/encoding';

export default function () {
  const str = 'hello world';
  const enc = 'aGVsbG8gd29ybGQ=';
  const expBin = new Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]);
  check(null, {
    'is decoding to string correct': () => encoding.b64decode(enc, 'std', 's') === str,
    'is decoding to ArrayBuffer correct': () => {
      const decBin = new Uint8Array(encoding.b64decode(enc));
      if (decBin.length != expBin.length) return false;
      for (let i = 0; i < decBin.length; i++) {
        if (decBin[i] !== expBin[i]) return false;
      }
      return true;
    },
  });
}