當前位置:編程學習大全網 - 源碼下載 - OpenSSL函數介紹

OpenSSL函數介紹

1概述

OpenSSL是壹個安全的套接字層密碼庫,它包括主要的密碼算法、常用的密鑰和證書封裝管理函數以及SSL協議,並提供了豐富的用於測試或其他目的的應用程序。

OpenSSL是壹個加密工具包,用於實現安全套接字層(SSL v2/v3)和傳輸層安全性(TLS v1)網絡協議以及相關的加密標準。

OpenSSL:開源項目

三個組件:

Openssl:多用途命令行工具,包括openssl。

Libcrypto:加密算法庫,包openssl-libs

Libssl:加密模塊應用庫,實現ssl和tls,包括nss。

。openssl命令:

兩種操作模式:交互模式和批處理模式。

Opensslversion:程序版本號。

標準命令、消息摘要命令、加密命令

標準命令:enc,ca,req,...

查看幫助:openssl?

可以通過openssl創建CA,頒發證書,文章/7759574/1964754。

是的,本文只介紹openssl toolkit的其他常用功能。

2案例介紹

2.1對稱加密

工具:openssl?Enc,gpg,文章/7759574/1964887已介紹。

算法:3des,aes,blowfish,twofish。

。enc命令:

對稱密碼命令允許根據密碼或明確提供的密鑰,使用各種塊密碼和流密碼對數據進行加密或解密。Base64編碼或解碼也可以單獨執行或加密或解密。

對稱密碼命令允許使用基於密碼或明確提供的密鑰,使用各種塊和流密碼對數據進行加密或解密。Base64編碼或解碼也可以單獨執行,或者與加密或解密壹起執行。

幫助:man enc

例子

加密文件

您需要輸入密碼來運行以下命令,並且您需要輸入相同的密碼來解密它。這裏新生成文件的後綴不壹定是cipher,可以自己指定。

openssl enc?-e -des3 -a -salt -in測試文件?-out testfile.cipher

解密文件

openssl?enc?-d-des 3-a-salt–輸入測試文件。密碼輸出測試文件

2.2公鑰加密

公鑰加密生成非對稱密鑰。

算法:RSA,ELGamal

工具:gpg,openssl?rsautl(人工rsautl)

數字簽名:

算法:RSA,DSA,ELGamal

密鑰交換:

算法:dh

DSA:數字簽名算法

DSS:數字簽名標準

RSA公鑰加密算法是由羅恩·裏維斯特、阿迪·阿迪·薩莫爾和倫納德·阿德曼於1977年提出的。命名就是將其名字的首字母組合成RSA。

RSA公鑰和私鑰主要用於數字簽名和認證,也稱為非對稱加密/解密。

2.2.1生成密鑰對

求助:曼根莎

生成私鑰,應該掌握生成密鑰的過程。

openssl genrsa?-out /PATH/TO/PRIVATEKEY。文件數量_位

私鑰文件生成後,建議把權限改成600,保護好,放在密碼信息裏讓別人看。

私鑰中的文件,如果是獲取的,沒有用關鍵字des加密,就相當於明文。

執行這個命令的時候需要輸入壹個八位密碼,想要使用這個私鑰的時候也需要輸入密碼。

(umask 077OpenSSL gen RSA–out test . key?–des 2048)

括號表示子進程。結束後,umask將恢復默認值。umask的值使其他人和組沒有權限,以保護生成的私鑰。

2.2.2從私鑰中提取公鑰,導出公鑰。

公鑰不能推導出私鑰,但私鑰可以推導出公鑰。

openssl?rsa?-in private keyfile–pub out?–out public keyfile

Openssl?rsa?–測試中。鑰匙?pubout?–out test . key . pub

公鑰是公開的,可以不設置權限。以上是生成公鑰。

2.2.3公鑰加密文件

OpenSSL rsautl-encrypt-in input . file-in key pubkey . PEM-pubin-out output . file

-in指定加密文件。

-inkey指定加密的公鑰文件。

-pubin surface用純公鑰文件加密。

-out指定加密的文件。

示例:

OpenSSL rsautl-encrypt-in FTP back-inkey test . key . pub-pubin-out ftpssl

2.2.4解密文件的私鑰

OpenSSL rsautl-decrypt-in input . file-in key key . PEM-out output . file

-in指定要解密的文件。

-inkey指定私鑰文件。

-out指定解密的文件。

示例:

OpenSSL rsautl-decrypt-in ftpssl-inkey test . key-out?ftpdec

2.3單向加密

單向加密意味著獲取摘要。

工具:md5sum,sha1sum,sha224sum,sha256sum …

openssl dgst

dgst:summary函數以十六進制形式輸出所提供文件或文件的消息摘要。它們也可以用於數字簽名和驗證。

digest函數以十六進制形式輸出所提供的壹個或多個文件的消息摘要。它們也可以用於數字簽名和驗證。

。dgst命令:

幫助:man dgst

openssl?dgst?-MD5[-十六進制默認值]?/PATH/SOMEFILE

openssl dgst?-md5測試文件

上面的命令從文件中生成壹個定長的匯總值,算法是md5,大小是128 bit。

md5sum /PATH/TO/SOMEFILE

上面兩個md5結果是壹樣的。

。MAC:消息認證碼(Message Authentication Code),是單向加密(hash)的擴展應用,用於實現網絡通信中保證傳輸數據完整性的機制。

MAC消息認證碼可以基於哈希或對稱加密算法構造,HMAC是基於哈希的消息認證碼。數據和密鑰作為輸入,抽象信息作為輸出,常用於認證。

源文件

2.4生成用戶密碼

Passwd命令:

幫助:man sslpasswd

openssl?passwd?-1-鹽鹽

-1對應哈希的md5算法。

salt:這裏是SALT值,是人為指定的,使得同壹個密碼生成的加密值不壹樣。最多是8位數,超過8位數就沒有意義了。比如前8位是壹樣的,後面還有幾位是不壹樣的,所以生成的密碼值是壹樣的。

openssl?passwd?-1-鹽厘斯

grb-md5-crypt也生成MD5加密密碼,centos是鹽值。

比如我這裏所有密碼都輸入123,但是salt值不壹樣,壹個是centos,壹個是centos6,生成的加密值不壹樣。

2.5生成隨機數

求助:曼斯蘭德

rand命令在播放壹次隨機數生成器後輸出num個偽隨機字節。像其他openssl命令行工具壹樣,PRNG種子使用文件$ HOME/。rnd或者。除了-rand選項中給出的文件之外。如果從這些來源獲得足夠的種子,壹個新的$ HOME/。rnd或者。rnd文件將被寫回。

rand命令在隨機數發生器播種壹次後輸出num個偽隨機字節。?與其他openssl命令行工具壹樣,PRNG播種使用文件$HOME/。rnd或者。除了中給定的文件?-蘭德期權。?壹個新的$HOME/。rnd或者。如果從這些文件中獲得了足夠的種子,rnd文件將被寫回。來源。

openssl?rand-base64 |-十六進制數

指定壹個數字以生成隨機數。如果是-hex之後的數,比如6,那麽生成的長度是12位,因為hex生成的隨機數是16組合的數,hex之後的num是字節數,壹個十六進制數16占用4位半字節。

基數後可以生成隨機密碼。

Base64生成隨機數,妳可以使用任何字符,也可以用base64格式保存圖片。由base64生成的圖片可以

使用base64恢復圖片。

NUM:表示字節數;-hex,每個字符都是十六進制,相當於4位二進制,出現的字符數是NUM*2。

3摘要

openssl的用途有很多,本文只介紹其中的壹部分。請使用幫助手冊openssl查看更多用途。

  • 上一篇:5050源代碼開發
  • 下一篇:細節精準震撼 HyperX 黑鷹耳機評測
  • copyright 2024編程學習大全網