ホームページ  >  記事  >  バックエンド開発  >  PHP 8 の新機能: 検証と署名の追加

PHP 8 の新機能: 検証と署名の追加

王林
王林オリジナル
2024-03-27 08:21:03668ブラウズ

PHP 8 新特性:增加了验证和签名

PHP 8 は PHP の最新バージョンで、プログラマーにさらなる利便性と機能をもたらします。このバージョンはセキュリティとパフォーマンスに特に重点を置いており、注目すべき新機能の 1 つは検証および署名機能の追加です。この記事では、これらの新機能とその使用法について詳しく説明します。

検証と署名は、コンピューター サイエンスにおける非常に重要なセキュリティ概念です。これらは、送信されるデータが完全で本物であることを確認するためによく使用されます。オンライン取引や機密情報を扱う場合、検証と署名が特に重要になります。誰かがデータを改ざんできると、企業や顧客に予期せぬ損害を与える可能性があるからです。

PHP 8 には、検証と署名を処理するための 2 つの新しい拡張機能、sodium と openssl があります。これらの拡張機能により、PHP で最新の暗号化およびセキュリティ プロトコルを簡単に使用できるようになります。

sodium extension

Sodium は、多くの暗号アルゴリズムとセキュリティ機能への API アクセスを提供する最新の暗号ライブラリです。これは、Curve25519 や Chacha20 などの最先端の暗号化標準に基づいているため、安全な暗号化を扱う開発者にとって最適なライブラリとなっています。

PHP 7.2 では、Sodium 拡張機能が PHP 標準ライブラリに追加され、PHP 7.2 ではオプションの拡張機能になりました。 PHP 8 では、これがデフォルトの拡張子になりました。

sodium 拡張機能を検証に使用する

sodium 拡張機能は、データの署名に使用できる、sodium_crypto_sign_detached() という関数を提供します。署名により、データが改ざんされているかどうかを確認するために使用できる特定の文字列が生成されます。

以下は、sodium_crypto_sign_detached() 関数を使用した署名と検証の例です。

<?php
$data = "hello world";
$keys = sodium_crypto_sign_keypair();

$signature = sodium_crypto_sign_detached($data, $keys['secret']);

if (sodium_crypto_sign_verify_detached($signature, $data, $keys['public'])) {
   echo "签名有效";
} else {
   echo "签名无效";
}

この例では、最初に公開鍵と秘密鍵のペアを生成します。次に、$sodium_crypto_sign_detached() 関数を使用して文字列に署名し、署名結果を $signature 変数に保存します。最後に、$sodium_crypto_sign_verify_detached() 関数を使用して、署名が有効であることを確認します。

署名が有効な場合は、「署名は有効です」と画面に表示され、そうでない場合は、「署名は無効です」と表示されます。

openssl 拡張機能を使用した認証

OpenSSL は、多くの暗号化アルゴリズムとセキュリティ機能を提供する一般的な暗号化およびセキュリティ ライブラリです。 OpenSSL 拡張機能が PHP に組み込まれているため、PHP での OpenSSL の使用がさらに便利になります。

OpenSSL 拡張機能には、データに署名できる openssl_sign() という別の関数が用意されています。同様に、この拡張機能は署名を検証するための関数 openssl_verify() も提供します。

以下は、openssl_sign() 関数と openssl_verify() 関数を使用した署名と検証の例です。

<?php
$data = "hello world";
$key = openssl_pkey_new(['digest_alg' => 'sha512']);

openssl_sign($data, $signature, $key);

if (openssl_verify($data, $signature, $key)) {
   echo "签名有效";
} else {
   echo "签名无效";
}

この例では、まず openssl_pkey_new() 関数を使用して public のペアを生成します。および秘密鍵キー。次に、openssl_sign() 関数を使用して文字列に署名し、署名結果は $signature 変数に保存されます。最後に、openssl_verify() 関数を使用して、署名が有効であることを確認します。

署名が有効な場合は、「署名は有効です」と画面に表示され、そうでない場合は、「署名は無効です」と表示されます。 ######結論は###

検証と署名は、データのセキュリティを確保するための重要な方法です。 PHP 8 では、sodium 拡張機能と openssl 拡張機能により、検証と署名が簡単になります。開発者はこれらの新機能を利用して、より安全なサービスを企業や顧客に提供できます。 PHP 開発者の場合は、セキュリティを最大化し、ユーザーを保護するために、sodium および openssl 拡張機能を詳しく調べることをお勧めします。

以上がPHP 8 の新機能: 検証と署名の追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。