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

作成日: 更新日:

sodium_crypto_aead_chacha20poly1305_ietf_decrypt関数は、PHPのLibsodium拡張機能が提供する、国際的な標準規格であるChaCha20-Poly1305 IETFバージョンを利用して、暗号化されたデータを安全に復号する関数です。この関数は、認証付き暗号(AEAD)と呼ばれる高度な暗号化手法に対応しており、単にデータを元の状態に戻すだけでなく、そのデータが途中で改ざんされていないか(完全性)、そして正当な送信元からのものであるか(認証)を同時に検証します。これにより、データの機密性はもちろん、信頼性も確保されます。

この関数を使用する際は、暗号化時に生成された暗号文、秘密鍵、そして一度だけ使用される一意の値であるノンス(nonce)を必須の引数として指定します。また、オプションとして、暗号文自体には含まれないものの、認証の対象とする関連データ(associated data)も指定できます。これらの情報が一つでも正しくない場合や、データが不正に改変されている場合は、復号に失敗し、ブール値のfalseを返します。成功した場合は、復号された元のプレーンテキスト(平文)データをバイナリ文字列として返します。この機能は、セキュアな通信路の構築や、データベースに保存された機密情報の保護など、データセキュリティが極めて重要となる場面で幅広く活用されています。

基本的な使い方

構文(syntax)

1<?php
2$ciphertext = '';
3$additional_data = null;
4$nonce = '';
5$key = '';
6
7$decrypted_data = sodium_crypto_aead_chacha20poly1305_ietf_decrypt($ciphertext, $additional_data, $nonce, $key);

引数(parameters)

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

  • string $ciphertext: 復号化する暗号化されたデータ(文字列)
  • string $additional_data: 認証のみを行う追加データ(文字列)
  • string $nonce: データを一意にするためのノンス(文字列)
  • string $key: 復号化に使用する秘密鍵(文字列)

戻り値(return)

string|false

入力された認証付き暗号文を複合し、元の平文を文字列として返します。複合に失敗した場合は false を返します。

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