sodium_bin2base64

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2base64 — 生バイナリを base64 文字列にエンコードする

説明

function sodium_bin2base64(#[\SensitiveParameter] string $string, int $id): string

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

パラメータ

string

生のバイナリ文字列

id

戻り値

base64 エンコードされた文字列を返します。

例

例1 sodium_bin2base64() の例

<?php
$string = 'This is an encoded string';
echo sodium_bin2base64($string, SODIUM_BASE64_VARIANT_ORIGINAL);
?>

上の例の出力は以下となります。

VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

例2 id 引数の例

<?php
$binaryString = sodium_hex2bin('aeb6798fef4e5184ff3b5596af753487');
var_dump(sodium_bin2base64($binaryString, SODIUM_BASE64_VARIANT_ORIGINAL));
var_dump(sodium_bin2base64($binaryString, SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING));
var_dump(sodium_bin2base64($binaryString, SODIUM_BASE64_VARIANT_URLSAFE));
var_dump(sodium_bin2base64($binaryString, SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING));
?>

上の例の出力は以下となります。

string(24) "rrZ5j+9OUYT/O1WWr3U0hw=="
string(22) "rrZ5j+9OUYT/O1WWr3U0hw"
string(24) "rrZ5j-9OUYT_O1WWr3U0hw=="
string(22) "rrZ5j-9OUYT_O1WWr3U0hw"

参考

  • base64_encode() - MIME base64 方式でデータをエンコードする
  • sodium_base642bin() - base64 エンコードされた文字列を、生バイナリにデコードする
  • sodium_hex2bin() - 16進エンコードされたバイナリ文字列をデコードする
+add a note

User Contributed Notes 1 note

up
7
davidw at example dot com
7 years ago
bin: The data you wish to encode
id: The variant of encoding to use, which can be one of the following constants. You'll need to reuse this value when decoding with sodium_base642bin.

SODIUM_BASE64_VARIANT_ORIGINAL            = 1
SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING = 3
SODIUM_BASE64_VARIANT_URLSAFE             = 5
SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING  = 7