この記事は、php における php_openssl.dll の役割の詳細な分析と紹介です。必要な友人は参照してください
1.opensslはじめに
データ暗号化は情報送信の重要な部分です。あらゆる情報を平文で送信することは非常に危険な行為であるため、
平文データを暗号文データに変換して送信する必要があります。
OpenSSL は SSL/ TLS プロトコルの暗号化ツールには次の機能があります:
1. 秘密鍵を生成します。
2. 公開鍵を含む、データの暗号化と復号化に使用できる証明書を生成します。つまり、公開鍵で暗号化されたデータは、
秘密鍵を使用して復号化できます。3. 情報を計算します
。 SSL/TLS クライアントおよびサーバー側のテスト 5. S/MIME タグと電子メールの暗号化を処理する
暗号化テクノロジの概要
暗号化アルゴリズム: データ暗号化プロセスで使用されるアルゴリズム。平文を暗号文に変換するために使用されます。
キー: 暗号化アルゴリズムは、暗号化データを生成するためのキーを使用して平文データを暗号化します。復号化するとき、暗号化アルゴリズムは、暗号化されたデータを平文データに変換するために鍵を使用します。つまり、暗号化に使用される計算方法は誰もが知っていますが、ペアリングすることはできません。暗号文の復号化 したがって、キーの保護はデータ セキュリティの核心です
3. openssl ツールの使用の概要
秘密キーを生成するには、さまざまなデジタル キーを使用できます。以下は個別に紹介されています:
$ openssl dsaparam -noout -out dsakey0.pem -genkey 1024#Adopt RSA アルゴリズム$ openssl genrsa -out rsakey0.pem 1024
#Adopt RSA アルゴリズムパスワード保護を使用します。秘密キーを生成するときは、秘密キーを保護するためのパスワードを入力する必要があります。 #この秘密キーを暗号化/復号化操作に使用する場合は、このパスワードも入力する必要があります。 $ openssl genrsa -des3 - out rsakey1.pem 10242. 公開鍵生成方法
秘密鍵を元に公開鍵を生成
$ openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem
# rsa アルゴリズムの公開鍵を生成します
$ openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub.pem3 自己署名証明書を生成する方法
#Generate DSA アルゴリズム証明書
$ openssl req -x509 -key dsakey0。 pem -days 365 -out mycert- dsa.pem -new
#RSA アルゴリズムの証明書を生成します
$ openssl req -x509 -key rsakey0.pem -days 365 -out mycert-rsa.pem -new
4. を使用します。電子メール暗号化用の証明書
us 平文レターの内容:
$ cat test.txt
111111
222222333333444444
aaaaaa 証明書を使用して平文レターを暗号化し、etest に出力します。 txt ファイル:
$ openssl smime -encrypt -in test .txt -out etest.txt mycert-rsa.pem 暗号化された暗号文のコンテンツを表示します:
$ cat etest.txt
MIME-Version: 1.0
Content-Dis
position
: 添付ファイル名 = "smime.p7m" コンテンツ タイプ: application/x-pkcs7-mime; name = "smime.p7m" UjBFMQswCQYDVQQG
EwJBVTETMB EGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkAgk Ar71mh4NRX/UwDQYJKoZIhvcNAQEBBQAEgYCbrA1WBwQK
YUtGwOaDw6Jn0AHRt64UwPOKoaeL9RVqp9vgtiFC/uXis5UeyZCWS1z7Jsih8Aa+
Da/DQN0sOCX85OdK /TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcN
AwIwDgICAKAAECNxsgiJ2s+1ugDC6JknPL+rDYBCddcyPH+bMYjqrUP0hE/GQ5WSjsv8CDkOUdvY5XG440yiAL3Z3ysI=使用秘密キーを復号化して dtest.txt ファイルに出力します:
$ openssl smime -decrypt -in etest.txt -inkey rsakey0.pem -out dtest.txt 復号化されたレターの内容を表示します。これは、元のプレーンテキストのレターの内容とまったく同じです
111111
222222
333333
444444
aaaaaa
プレーンテキストファイルの内容:
$ cat test.txt
1
22
333
4444
55555こんにちは、暗号化されたプレーンテキストファイル、出力は test.enc ファイルです。暗号化パスワードとして「123123」を入力します:
$ openssl enc -aes-256-cbc -salt -in test.txt -out test.enc aes-256-cbc 暗号化パスワードを入力します: 検証 - aes-256-cbc 暗号化パスワードを入力してください: 暗号文を復号化するには、復号化パスワードとして「123123」を入力してください:
$ openssl enc -d -aes-256-cbc -in test.enc
aes-256-cbc 復号化パスワードを入力します:
1
22
333
4444
55555
Hello
6. 単純な文字列暗号化
base64 を使用して暗号化します:
$ echo "encode me" | openssl enc -base64
ZW5jb2RlIG1lCg== 復号化する前に、暗号化アルゴリズムを知っておく必要があります:
$ echo "ZW5jb2RlIG1lCg==" | openssl enc -base64 -d
encode me
7. SSL クライアントとサーバーのテスト
「-www」の機能は、クライアントが接続するときに送信することです。 ステータス 情報 Web ページをクライアントに送信します。
openssl s_server -key mykey.pem -cert mycert.pem -www は SSL サーバーに接続し、クライアントはサーバーの証明書を取得します。ローカルホスト:4433
以上がphp php_openssl.dll ファイルの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。