openssl が DSA アルゴリズムを使用して署名を生成する方法の詳細な説明_PHP チュートリアル
この記事では、DSA アルゴリズムを使用して openssl に基づいて署名を生成する例を紹介します。署名を生成する方法は非常に簡単ですが、より複雑な中間の原理を理解する必要があります。
コマンド:
openssl> dgst -dss1 -sign C.pri -out signal.bin s.txt
説明
C.pri は、DSA アルゴリズムによって生成された秘密鍵ファイルです
s.txtは署名作成用の原文です
Signature.bin は生成された署名ファイルです
以下のメソッドを使用して、phpで署名の内容を表示できます
コードは次のとおりです | コードをコピー |
echo bin2hex(file_get_contents('signature.bin')); ?> |
参考内容
メッセージダイジェストアルゴリズム
サポートされているアルゴリズムには、MD2、MD4、MD5、MDC2、SHA1 (DSS1 とも呼ばれます)、RIPEMD-160 が含まれます。 SHA1 と RIPEMD-160 は 160 ビット ハッシュを生成し、その他は 128 ビット ハッシュを生成します。互換性上の理由がない限り、SHA1 または RIPEMD-160 を使用することをお勧めします。
rmd160 コマンドを必要とする RIPEMD-160 を除いて、他のアルゴリズムは dgst コマンドで実行できます。
OpenSSL の SHA1 の処理は少し奇妙で、DSS1 と呼ばれる必要がある場合があります。
メッセージ ダイジェスト アルゴリズムは、ハッシュ値の計算に加えて、署名と署名の検証にも使用できます。署名する場合、DSA によって生成された秘密キーは DSS1 (つまり SHA1) と一致する必要があります。 RSA によって生成された秘密キーには、任意のメッセージ ダイジェスト アルゴリズムを使用できます。
# メッセージダイジェストアルゴリズムの応用例
# SHA1アルゴリズムを使用してファイルfile.txtのハッシュ値を計算し、stdoutに出力します
$ openssl dgst -sha1 file.txt
# SHA1アルゴリズムを使用してファイルfile.txtのハッシュ値を計算し、ファイルdigest.txtに出力します
$ openssl sha1 -out ダイジェスト.txt ファイル.txt
# DSS1 (SHA1) アルゴリズムを使用してファイル file.txt に署名し、ファイル dsasign.bin に出力します
# 署名の秘密キーは DSA アルゴリズムによって生成され、ファイル dsakey.pem に保存される必要があります
$ openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt
# dss1 アルゴリズムを使用して、file.txt のデジタル署名 dsasign.bin を検証します。
# 検証される秘密鍵は、DSA アルゴリズムによって生成されたファイル dsakey.pem です
$ openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt
# sha1 アルゴリズムを使用してファイル file.txt に署名し、ファイル rsasign.bin に出力します
# 署名の秘密鍵は、RSA アルゴリズムによって生成されたファイル rsaprivate.pem です
$ openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt
# sha1 アルゴリズムを使用して file.txt rsasign.bin のデジタル署名を検証します、
# 検証された公開鍵は、RSA アルゴリズムによって生成された rsapublic.pem です
$ openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









