ホームページ  >  記事  >  php教程  >  php php_openssl.dll の役割を分析する

php php_openssl.dll の役割を分析する

高洛峰
高洛峰オリジナル
2016-12-23 17:57:111191ブラウズ

1. openssl の概要
データの暗号化は情報送信の重要な部分です。そのため、平文データを暗号化する必要があります。その後、テキスト データが送信されます。

OpenSSL は、SSL/TLS プロトコルの暗号化ツールのセットです。

1. 証明書、つまりデジタル署名証明書を生成します。公開キーを含む このキーは、一方向のデータの暗号化と復号化に使用できます。つまり、公開キーを使用して暗号化されたデータは、秘密キーを使用してのみ復号化できます。
3. 情報の計算
4. SSL/TLS のテストとメールの暗号化。平文データを暗号文データに変換するプロセス。平文の機密性を維持するため。
暗号化アルゴリズム: データ暗号化プロセスで使用されるアルゴリズム。平文を暗号文に変換します。データは暗号化され、暗号化データが生成されます。
今日の暗号化技術では、暗号化アルゴリズムは公開されており、誰もが知っています。ただし、暗号文の復号化に使用できるのはキーのみです。 したがって、キーの保護がデータ セキュリティの核心です。

3. 秘密キーの生成方法の概要。

秘密鍵を生成する、さまざまなデジタル署名アルゴリズムを以下に紹介します。 rsakey0.pem 1024

#RSA アルゴリズムを採用し、パスワード保護を使用します。秘密キーを生成するときは、秘密キーを保護するためのパスワードを入力する必要があります。
#この秘密キーを暗号化/復号化操作に使用する場合は、次のことも必要です。このパスワードを入力します
$ openssl genrsa - des3 -out rsakey1.pem 10242. 公開鍵生成方法
秘密鍵を元に公開鍵を生成
#dsaアルゴリズムの公開鍵を生成
$ openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem
# rsa アルゴリズムの公開鍵を生成します

$ openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub.pem3 自己署名証明書の生成方法

#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. 証明書を使用して電子メールを暗号化します。
平文レターの内容:

$ cat test.txt
111111
222222
333333
444444
aaaaaa
証明書を使用して平文レターを暗号化し、etest に出力します。 txt ファイル:
$ openssl smime -encrypt -in test.txt -out etest.txt mycert-rsa.pem 暗号化された暗号文のコンテンツを表示します:

$ cat etest.txt
MIME-Version: 1.0
Content-Disposition:attachment;ファイル名 = "smime.p7m"
コンテンツ タイプ smime-type=enveloped-data; name = "smime.p7m" 1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lk
Z2l0cyBQdHkgTHRkAgkAr 71mh4NRX/UwDQYJKoZIhvc NAQEBBQAEgYCbrA1WBwQK
Zj7TcNtrxiDzqMBc/Lu063SLKvBK6 mQMqT+npFOOFtzIKdFVkldH0YyQhMZDSCyq

YUtGwOaDw6Jn0AHRt64UwPOKoaeL9RVqp9vgtiFC/ uXis5UEyZCW S1z7Jsih8Aa+

Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcN
AwIwDgICAKAAECNxsgiJ2s+1ugDC6JknPL+rDYBCddcyPH+bMYjqrUP0 hE/GQ5WSj
sv8CDkOUdvY5XG440yiAL3Z3ysI=秘密キーを使用して復号化し、dtest.txt ファイルに出力します:

$ openssl smime -decrypt -in etest.txt -in key rsakey0.pem -out dtest.txt を表示します。復号化されたレターの内容、

$ cat dtest.txt
111111

222222

333333
444444
aaaaaa

5. 単純なファイル暗号化

クリアテキストファイルの内容:


$。 cat test.txt
1
22
333
4444
55555
Hello 暗号化されたプレーン テキスト ファイル、出力は 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== 復号化する前に、暗号化アルゴリズムを知っておく必要があります。 me

7. SSL クライアントとサーバーのテスト

秘密キーと証明書を使用して SSL サーバーを起動します。「-www」の機能は、クライアントがサーバーに接続するときにステータス情報 Web ページを送信することです。


openssl s_server -key mykey.pem -cert mycert.pem -www は SSL サーバーに接続し、クライアントはサーバーの証明書を取得します:

openssl s_client -connect localhost:4433

php php_openssl.dll の役割の分析に関するその他の記事については、PHP 中国語 Web サイトに注目してください。

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