php8.5
Home/ Manual/ sodium / functions/ sodium_base642bin

sodium_base642bin

PHP function Edit on GitHub ✎

(PHP 7 >= 7.2.0, PHP 8)

Decodes a base64-encoded string into raw binary.

Description

sodium_base642bin(string $string, int $id, string $ignore = ""): string

Converts a base64 encoded string into raw binary. Unlike base64_decode(), sodium_base642bin() is constant-time (a property that is important for any code that touches cryptographic inputs, such as plaintexts or keys) and supports multiple character sets.

Parameters

string

string; Encoded string.

id
  • SODIUM_BASE64_VARIANT_ORIGINAL for standard (A-Za-z0-9/\+) Base64 encoding.
  • SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING for standard (A-Za-z0-9/\+) Base64 encoding, without = padding characters.
  • SODIUM_BASE64_VARIANT_URLSAFE for URL-safe (A-Za-z0-9\-_) Base64 encoding.
  • SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING for URL-safe (A-Za-z0-9\-_) Base64 encoding, without = padding characters.
ignore

Characters to ignore when decoding (e.g. whitespace characters).

Return Values

Decoded string.

Examples

sodium_base642bin() example

php
<?php
$string = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo sodium_base642bin($string, SODIUM_BASE64_VARIANT_ORIGINAL);
?>

The above example will output:

output
This is an encoded string

Example of the id parameter

php
<?php
var_dump(sodium_bin2hex(sodium_base642bin('rrZ5j+9OUYT/O1WWr3U0hw==', SODIUM_BASE64_VARIANT_ORIGINAL)));
var_dump(sodium_bin2hex(sodium_base642bin('rrZ5j+9OUYT/O1WWr3U0hw', SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING)));
var_dump(sodium_bin2hex(sodium_base642bin('rrZ5j-9OUYT_O1WWr3U0hw==', SODIUM_BASE64_VARIANT_URLSAFE)));
var_dump(sodium_bin2hex(sodium_base642bin('rrZ5j-9OUYT_O1WWr3U0hw', SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING)));
?>

The above example will output:

output
string(32) "aeb6798fef4e5184ff3b5596af753487"
string(32) "aeb6798fef4e5184ff3b5596af753487"
string(32) "aeb6798fef4e5184ff3b5596af753487"
string(32) "aeb6798fef4e5184ff3b5596af753487"

Example of the ignore parameter

php
<?php
$string = <<<'STR'
    VGhpcyBpcy
    BhbiBlbmNv
    ZGVkIHN0cm
    luZw==
STR;
var_dump(sodium_base642bin($string, SODIUM_BASE64_VARIANT_ORIGINAL, " \r\n"));
?>

The above example will output:

output
string(25) "This is an encoded string"

See Also

Source: reference/sodium/functions/sodium-base642bin.xml · from the official PHP manual (php/doc-en)