sodium_base642bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_base642bin — base64 エンコードされた文字列を、生バイナリにデコードする

説明

function sodium_base642bin(#[\SensitiveParameter] string $string, int $id, string $ignore = ""): string

base64 エンコードされた文字列を、 生バイナリにデコードします。 base64_decode() と異なり、 sodium_base642bin() は定数時間 (この性質は、プレーンテキストや鍵のような、 暗号に関する入力に触れるあらゆるコードで重要です) で実行でき、複数のエンコード方式をサポートしています。

パラメータ

string

エンコードされた文字列。

id
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"

参考

+add a note

User Contributed Notes

There are no user contributed notes for this page.