(PHP 7 >= 7.2.0, PHP 8)
sodium_base642bin — base64 エンコードされた文字列を、生バイナリにデコードする
$string, int $id, string $ignore = ""): stringbase64 エンコードされた文字列を、 生バイナリにデコードします。 base64_decode() と異なり、 sodium_base642bin() は定数時間 (この性質は、プレーンテキストや鍵のような、 暗号に関する入力に触れるあらゆるコードで重要です) で実行でき、複数のエンコード方式をサポートしています。
stringエンコードされた文字列。
idSODIUM_BASE64_VARIANT_ORIGINAL
- 標準的な base64 文字列
(A-Za-z0-9/\+) の場合に指定します。
SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING
- 標準的な base64 文字列
(A-Za-z0-9/\+) ですが、
= でパディングされていない場合に指定します。
SODIUM_BASE64_VARIANT_URLSAFE
- URLに埋め込んでも安全な base64 エンコーディング
(A-Za-z0-9\-_)
SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING
- URLに埋め込んでも安全な base64 エンコーディング
(A-Za-z0-9\-_) ですが、
= でパディングされていない場合に指定します。
ignoreデコードする際に無視する文字(e.g. 空白文字)
デコードされた文字列を返します。
例1 sodium_base642bin() の例
<?php
$string = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo sodium_base642bin($string, SODIUM_BASE64_VARIANT_ORIGINAL);
?>上の例の出力は以下となります。
This is an encoded string
例2 id 引数の例
<?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)));
?>上の例の出力は以下となります。
string(32) "aeb6798fef4e5184ff3b5596af753487" string(32) "aeb6798fef4e5184ff3b5596af753487" string(32) "aeb6798fef4e5184ff3b5596af753487" string(32) "aeb6798fef4e5184ff3b5596af753487"
例3 ignore 引数の例
<?php
$string = <<<'STR'
VGhpcyBpcy
BhbiBlbmNv
ZGVkIHN0cm
luZw==
STR;
var_dump(sodium_base642bin($string, SODIUM_BASE64_VARIANT_ORIGINAL, " \r\n"));
?>上の例の出力は以下となります。
string(25) "This is an encoded string"