【PHP8.x】sodium_crypto_aead_chacha20poly1305_decrypt関数の使い方

作成日: 更新日:

sodium_crypto_aead_chacha20poly1305_decrypt関数は、ChaCha20-Poly1305という強力な認証付き暗号化アルゴリズムを用いて、暗号化されたデータを安全に復号する関数です。この関数は、単にデータを元の平文に復元するだけでなく、データが暗号化されてから改ざんされていないか、また正しい鍵によって暗号化されたかという認証を同時に実行します。これにより、データの機密性(不正な閲覧から保護されること)と完全性(意図しない変更が加えられていないこと)の両方を保証し、非常に安全なデータ処理を実現します。

この関数を使用する際には、復号したい暗号文、暗号化時に使用した秘密鍵、一度だけ使用されるべきユニークな数値ノンス(nonce)、そして認証の対象となる関連データ(additional_data)を引数として渡します。関連データは暗号化されませんが、認証の対象となり、データの完全性を高めるのに役立ちます。復号と認証に成功した場合、元の平文を文字列として返します。もし鍵が誤っている、ノンスが異なる、またはデータが改ざんされていると検出された場合など、認証に失敗した際にはfalseを返します。このfalseという戻り値を確認することで、不正なデータであるかを判断し、適切な処理を行うことができます。本関数は、PHPのSodium拡張機能が有効になっている環境で利用可能です。

基本的な使い方

構文(syntax)

1<?php
2$ciphertext = '';
3$additional_data = null;
4$nonce = '';
5$key = '';
6
7$decrypted_message = sodium_crypto_aead_chacha20poly1305_decrypt(
8    $ciphertext,
9    $additional_data,
10    $nonce,
11    $key
12);

引数(parameters)

string $ciphertext, string $additional_data, string $nonce, string $key

  • string $ciphertext: 復号化する暗号文を指定する文字列
  • string $additional_data: 認証に追加する追加データを指定する文字列
  • string $nonce: ナンス(一度だけ使用されるランダムな値)を指定する文字列
  • string $key: 復号化に使用する秘密鍵を指定する文字列

戻り値(return)

string|false

sodium_crypto_aead_chacha20poly1305_decrypt 関数は、ChaCha20-Poly1305 方式で暗号化されたデータを復号して元の平文文字列を返します。認証タグの検証に失敗した場合は false を返します。

【PHP8.x】sodium_crypto_aead_chacha20poly1305_decrypt関数の使い方 | いっしー@Webエンジニア