PHPのcrypto_stream()で安全な暗号化ストリームを作成する方法

PHP

PHPで安全なデータ暗号化を実現する際に役立つのが、Libsodiumライブラリのcrypto_stream()関数です。この関数を使えば、秘密鍵とnonce(ランダム値)を使用して暗号化されたデータストリームを生成できます。大きなデータや連続的にデータを扱う際に非常に便利です。

関数の構文

string crypto_stream(int $length, string $nonce, string $key);
  • length: 暗号化ストリームの長さ(バイト単位)。
  • nonce: 各暗号化操作に一度だけ使われるランダムな値(nonce)。
  • key: 秘密鍵。安全な暗号化を行うために使われるキーです。

この関数は指定された長さの暗号化されたストリームを生成します。noncekeyの組み合わせが同じであれば、同じストリームが生成されます。

使い方の例

次に、crypto_stream()を使って暗号化ストリームを生成する簡単な例を紹介します。

// ランダムな秘密鍵とnonceを生成
$key = random_bytes(SODIUM_CRYPTO_STREAM_KEYBYTES);
$nonce = random_bytes(SODIUM_CRYPTO_STREAM_NONCEBYTES);

// 暗号化ストリームを生成
$length = 64; // ストリームの長さ(バイト)
$stream = sodium_crypto_stream($length, $nonce, $key);

echo bin2hex($stream); // 暗号化ストリームを表示

この例では、64バイト長の暗号化されたデータストリームを生成し、bin2hex()を使ってそれを16進数で表示しています。

まとめ

crypto_stream()は、安全な暗号化ストリームを作成するための強力なツールです。特に、データのストリーム処理や大容量データを扱う際に、効率的かつ安全に暗号化を行いたい場合に役立ちます。

タイトルとURLをコピーしました