インターネットの継続的な発展に伴い、ネットワーク セキュリティへの注目がますます高まっています。データのセキュリティを確保するために、当社では通常、重要なデータを暗号化します。 Web 開発で一般的に使用される暗号化方式には、md5、sha1 などが含まれます。ただし、これらの暗号化方法はもはや安全ではなく、攻撃者は総当たりクラッキングなどの方法を使用して暗号化されたデータを簡単に解読できます。そのため、php7.1 で提供されているユニバーサル暗号化方式など、いくつかの新しい暗号化方式が登場しています。この記事ではphp7.1のユニバーサル暗号化方式の使い方を紹介します。
#はじめに-
ユニバーサル暗号化方式である Sodium 拡張機能は、php7.1 に付属する暗号化拡張機能です。 Sodium 拡張機能は、データのセキュリティを保護するために、公開キー暗号化、AES 暗号化などを含む一連の安全な暗号化機能を提供します。以前の暗号化方法と比較して、Sodium 拡張機能はより安全で効率的です。 Sodium 拡張機能で使用される暗号化アルゴリズムは暗号化の専門家によって設定されており、その安全性が保証されています。
インストール-
Sodium 拡張機能を使用するには、php.ini ファイルで有効にする必要があります。 Linux 環境では、次のコマンドを使用してインストールできます:
$ sudo apt-get install libsodium-dev
インストールが完了したら、php.ini に次の構成を追加できます:
extension=sodium.so
API-
Sodium 拡張機能は、次のような一連の安全な API 関数を提供します。
sodium_crypto_secretbox — XSalsa20-Poly1305 アルゴリズムを使用してメッセージを暗号化します - sodium_crypto_secretbox_open — 使用しますメッセージを暗号化する XSalsa20-Poly1305 アルゴリズム メッセージを復号化する
- sodium_crypto_box — 公開キー暗号化を使用してメッセージを暗号化する
- sodium_crypto_box_open — 公開キー暗号化を使用してメッセージを復号化する
- sodium_crypto_aead_aes256gcm_encrypt — AES-GCM アルゴリズムを使用してメッセージを暗号化する
- sodium_crypto_aead_aes256gcm_decrypt — AES-GCM アルゴリズムを使用してメッセージを復号化する
-
このうち、sodium_crypto_secretbox_open とsodium_crypto_box_open は主にメッセージの復号化に使用されます。メッセージの暗号化には他の関数が使用されます。
以下は、sodium_crypto_secretbox を使用してデータを暗号化するコード例です:
<?php
$plaintext = 'Hello World';
$key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES); // 生成秘钥
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); // 生成随机数
$ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key);
?>
上記のコードでは、$plaintext はプレーンテキスト、$key は暗号化キー、$nonce はランダムです。番号。 sodium_crypto_secretbox 関数は、XSalsa20-Poly1305 アルゴリズムを使用して $plaintext を暗号化し、暗号化された暗号文を返します。
暗号化セキュリティ-
暗号化に Sodium 拡張機能を使用する場合は、暗号化セキュリティに注意する必要があります。セキュリティ上の注意事項は次のとおりです。
高強度の秘密キーを使用し、単純すぎるキーは使用しないでください- 各暗号化に乱数を使用し、同じ乱数を使用しないでください
- 攻撃された暗号化アルゴリズムは使用しないでください。XSalsa20-Poly1305、AES-GCM などのアルゴリズムを使用することをお勧めします。
- 暗号化アルゴリズムは手動で実装せず、既製のものを使用してください。機能
-
概要-
#この記事では、php7.1 で提供されている Sodium 拡張機能を紹介します。 Sodium 拡張機能は、Web アプリケーションのセキュリティを確保するために、公開キー暗号化、AES 暗号化などを含む一連の安全な暗号化 API 関数を提供します。 Sodium 拡張機能で使用される暗号化アルゴリズムは安全で信頼性が高いため、現在の Web 開発における安全な暗号化に推奨される拡張機能の 1 つです。暗号化に Sodium 拡張機能を使用する場合は、データのセキュリティを確保するために暗号化のセキュリティに注意を払う必要があります。
以上がphp7.1 ユニバーサル暗号化方式の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。