首頁 php教程 PHP开发 解析php php_openssl.dll的作用

解析php php_openssl.dll的作用

Dec 23, 2016 pm 05:57 PM

一.openssl簡介
資料加密是資訊資訊傳輸中的一個重要組成部分.任何資訊都以明文方式傳輸,確實是個很不安全的做法.所以, 
需要對資料進行加密.將明文資料轉換為密文資料,再傳輸.

OpenSSL是一套用於SSL/TLS協定的加密工具,其作用有: 
1.產生私有金鑰. 
2.產生憑證,即數位簽章,它包含一個公有密鑰,可以用來單向的加密和解密資料.即,使用公鑰加密的資料,只能使用 
私有金鑰解密.使用私鑰加密的資料,可以使用公鑰來解密. 
3.計算訊息摘要. 
4.SSL/TLS客戶端和伺服器端測試. 
5.處理S/MIME標記和郵件的加密.

二.加密技術簡介.
加密,即將明文資料轉換為密文資料的過程.以起到對明文保密的作用. 
加密演算法: 資料加密過程所採用的一種運算演算法.用於將明文轉換為密文. 
密鑰: 加密演算法透過與密鑰進行某種運算,將明文資料進行加密,產生加密資料.解密時,加密演算法透過金鑰, 
將加密資料再轉換為明文資料. 
現今的加密技術,加密演算法是公開的,即所有人都知道加密所採用的運算方式.但只有使用金鑰才能進行 
對密文的解密.所以,金鑰的保護,是資料安全的核心.

三.openssl工具使用簡介
1.私有金鑰產生方法
產生私有金鑰,可以使用不同的數位簽章演算法.以下分別介紹;

#採用DSA演算法
$ openssl dsaparam -noout -out dsakey0.pem -genkey 1024
#採用RSA演算法
$ openssl genrsa -out rsakey0.pem 102
$ openssl genrsa -out rsakey0.pem 102 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
aa 
使用憑證對明文信件進行加密檔案txt -out etest.txt mycert-rsa.pem查看加密後的密文內容:

$ cat etest.txt 

MIME-Version: 1.0
Content-Disposition: attachment; filename="smime.p7m" : application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"
Content-Transfer-Encoding: base64

MIIBYAYJKoZIFMcNAQcDoIIBUT 1UECBM事QMqT+npFOOFtzIKdFVkldH0YyQhMZDSCyq

YUtGwOaDw6Jn0AHRt64UwPOKoaeL9RVqp9vgtiFC/ uXis5UeyZCWS1z7Jsih8Aa+

Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIx hE/GQ5WSj
sv8CDkOUdvY5XG440yiAL3Z3ysI=使用私鑰解密,輸出到dtest.txt檔案:

$ openssl smime  -decrypt -in etest.txt -inkey rsakey0.pemkey -out dtest.txt查看解密後的信件內容,與原明文信件內容完全一致.

$ cat dtest.txt 
111111
2222222

3333333

444444

aaaaaaaaaaaa


$ cat test.txt 
1
22
333
4444
55555
Hello加密明文檔案,輸出為test.enc4,輸入」123123」作為加密密碼
salt -in test.txt -out test.enc

enter aes-256-cbc encryption password:

Verifying - enter aes-256-cbc encryption password:對密文解密,已輸入」123123”作為解密密碼:

openssl enc -d -aes-256-cbc -in test.enc
enter aes-256-cbc decryption password:
1
22
333

44444

55555.進行加密:

$ echo "encode me" | openssl enc -base64

ZW5jb2RlIG1lCg==解密時,需要知道加密演算法,才可解密:


$ echo "ZW5jb2RlIG1lCg=="
$ echo me

7.SSL客戶端和伺服器的測試
使用私鑰和憑證啟動SSL伺服器,"-www」的作用是,當客戶端連接伺服器時,發送一個狀態資訊網頁到客戶端.

openssl s_server -key mykey.pem -cert mycert.pem -www連接SSL伺服器到,客戶端會取得伺服器的憑證:

openssl s_client -connect localhost:4433

更多解析php php_openssl.dll的作用相關文章請關注PHP中文網!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)