ホームページ バックエンド開発 PHPチュートリアル PHP 8 の新機能: 検証と署名の追加

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

Mar 27, 2024 am 08:21 AM
確認する サイン phpの新機能 標準ライブラリ

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++で絶対値を使用する方法 C++で絶対値を使用する方法 May 06, 2024 pm 06:15 PM

C++ で絶対値を取得するには、次の 2 つの方法があります。 1. 組み込み関数 abs() を使用して、整数または浮動小数点型の絶対値を取得します。 2. 汎用関数 std::abs() を使用して、サポートされているさまざまな絶対値を取得します。データ型の絶対値を操作します。

C++ で std:: を使用する方法 C++ で std:: を使用する方法 May 09, 2024 am 03:45 AM

std は、標準ライブラリのコンポーネントを含む C++ の名前空間です。 std を使用するには、「using namespace std;」ステートメントを使用します。 std 名前空間からシンボルを直接使用するとコードを簡素化できますが、名前空間の汚染を避けるために必要な場合にのみお勧めします。

Pythonでウィンドウをポップアップする方法 Pythonでウィンドウをポップアップする方法 May 05, 2024 pm 08:15 PM

Python でポップアップを作成するには 2 つの方法があります。 Tkinter: Tkinter ライブラリを使用して Tk または TopLevel ウィジェットを作成します。 Pyglet: Pyglet ライブラリを使用して Window ウィンドウを作成します。

C++でプライムは何を意味しますか C++でプライムは何を意味しますか May 07, 2024 pm 11:33 PM

prime は C++ のキーワードで、1 とそれ自体でしか割り切れない素数の型を示し、指定された値が素数であるかどうかを示すブール型として使用されます。 true、それ以外の場合は false。

C++ におけるファブとは何を意味しますか C++ におけるファブとは何を意味しますか May 08, 2024 am 01:15 AM

fabs() 関数は、浮動小数点数の絶対値を計算し、負の符号を削除して正の値を返す C++ の数学関数です。浮動小数点パラメータを受け入れ、double 型の絶対値を返します。たとえば、fabs(-5.5) は 5.5 を返します。この関数は浮動小数点数を処理しますが、その精度は基盤となるハードウェアによって影響を受けます。

Javaのconfigってどういう意味ですか? Javaのconfigってどういう意味ですか? May 07, 2024 am 02:39 AM

Config は Java の構成情報を表し、通常は外部ファイルまたはデータベースに保存され、Java プロパティ、PropertyResourceBundle、Java 構成フレームワーク、またはサードパーティ ライブラリを通じて管理できます。その利点には、分離と柔軟性が含まれます。環境意識、管理性、拡張性。

_C言語での複雑な使い方 _C言語での複雑な使い方 May 08, 2024 pm 01:27 PM

複素数型は、C 言語で実数部と虚数部を含む複素数を表すために使用されます。その初期化形式は complex_number = 3.14 + 2.71i で、実数部は creal(complex_number) を通じてアクセスでき、虚数部は cimag(complex_number) を通じてアクセスできます。この型は、加算、減算、乗算、除算、剰余などの一般的な数学演算をサポートします。さらに、cpow、csqrt、cexp、csin など、複素数を処理するための一連の関数が提供されています。

C++で絶対値を計算する方法 C++で絶対値を計算する方法 May 06, 2024 pm 06:21 PM

C++ で絶対値を求める方法は 3 つあります。 abs() 関数を使用すると、あらゆるタイプの数値の絶対値を計算できます。 std::abs() 関数を使用すると、整数、浮動小数点数、および複素数の絶対値を計算できます。絶対値の手動計算。単純な整数に適しています。

See all articles