
Simple Encryption in PHP.
composer require defuse/php-encryption
これは、PHP で鍵またはパスワードを使用してデータを暗号化するためのライブラリです。PHP 5.6 以降と OpenSSL 1.0.1 以降が必要です。 現在もセキュリティサポートが提供されているバージョンの PHP の使用を推奨します。本稿執筆時点では PHP 8.0 以降が該当します。サポートされていないバージョンの PHP でこのライブラリを使用すると、セキュリティ上の脆弱性が生じる可能性があります。
php-encryption の現在のバージョンは v2.4.0 です。このライブラリは、2024年1月1日まで少なくとも、セキュリティ修正とバグ修正により作者から安定してサポートされ続ける見込みです。
このライブラリは、Taylor Hornby と Scott Arciszewski に加え、数多くのオープンソース貢献者による共同作業です。
このライブラリが他の PHP 暗号化ライブラリと異なる点は、まず第一に、安全性が高いことです。著者たちは日常的に不安全な PHP 暗号化コードに遭遇していたため、エコシステムにより多くのセキュリティをもたらすためにこのライブラリを作成しました。第二に、このライブラリは「誤用されにくい」ことです。libsodium と同様に、その API は安全な方法で使いやすく、不安全な方法では使いにくいように設計されています。
このライブラリには、PHP 5.6 以降と OpenSSL 拡張機能(バージョン 1.0.1 以降)が有効になっていること以外に特別な依存関係は必要ありません(これらはデフォルトです)。random_compat を使用していますが、これはこのライブラリに同梱されているため、ユーザーが特別なインストール手順を踏む必要はありません。
まず、チュートリアルから始めてください。このライブラリのコードを安全に入手する手順は、インストールと検証のドキュメントにあります。
チュートリアルを読んでコードを入手したら、このライブラリが提供する各クラスの正式なドキュメントを参照してください。
問題が発生した場合は、FAQ の回答を参照してください。よく報告される問題の修正方法がそこに説明されています。
暗号技術者で、このライブラリの動作の細部を理解したい場合は、暗号化の詳細 のドキュメントを参照してください。
このライブラリへの貢献に興味がある場合は、内部開発者向けドキュメント を参照してください。
このライブラリは、保存データを暗号化する必要があるサーバーサイドの PHP ソフトウェアを対象としています。 クライアントサイドで暗号化する必要があるソフトウェアを構築している場合、またはクロスプラットフォームの暗号化/復号化サポートを必要とするシステムを構築している場合は、代わりに libsodium を使用することを強くお勧めします。
このライブラリの使い方を理解するのにドキュメントだけでは不十分な場合は、このライブラリを使用しているサンプルプロジェクトを参照できます。
このコードは、正式な有償のセキュリティ監査を受けていません。ただし、PHP セキュリティコミュニティのメンバーから多くのレビューを受けており、著者らは暗号技術に精通しています。おそらく、このライブラリを使用する方が、他のほとんどの PHP 暗号化ライブラリを使用するよりも安全です。
このライブラリをビジネスの一部として使用しており、正式な監査への資金提供を支援したい場合は、Taylor Hornby までお問い合わせください。
現在および新しいリリースの署名に使用される GnuPG 公開鍵は、dist/signingkey-new.asc で入手できます。そのフィンガープリントは次のとおりです。
6DD6 E677 0281 5846 FC85 25A3 DD2E 507F 7BDB 1669
これは、Taylor Hornby の連絡先ページとTwitterで検証できます。
以前のリリースは、(現在は期限切れの) 鍵で署名されており、dist/signingkey-old.asc で入手できます。以前の鍵のフィンガープリントは次のとおりです。
2FA6 1D8D 99B9 2658 6BAC 3D53 385E E055 A129 1538
以前の鍵のフィンガープリントは、Taylor Hornby の連絡先ページとTwitterで検証できます。
この新しい鍵に対する以前の鍵による署名は、dist/signingkey-new.asc.sig で入手できます。