最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux 中的 Openssl命令及實(shí)例代碼

 更新時(shí)間:2017年09月25日 15:49:13   投稿:mrr  
OpenSSL是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的密碼算法、常用的密鑰和證書(shū)封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用

openssl命令的格式是"openssl command command-options args",command部分有很多種命令,這些命令需要依賴(lài)于openssl命令才能執(zhí)行,所以稱(chēng)為偽命令(pseudo-command),每個(gè)偽命令都有各自的功能,大部分command都可以直接man command查看命令的用法和功能。

OpenSSL是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的密碼算法、常用的密鑰和證書(shū)封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用。在OpenSSL被曝出現(xiàn)嚴(yán)重安全漏洞后,發(fā)現(xiàn)多數(shù)通過(guò)SSL協(xié)議加密的網(wǎng)站使用名為OpenSSL的開(kāi)源軟件包。由于這是互聯(lián)網(wǎng)應(yīng)用最廣泛的安全傳輸方法,被網(wǎng)銀、在線(xiàn)支付、電商網(wǎng)站、門(mén)戶(hù)網(wǎng)站、電子郵件等重要網(wǎng)站廣泛使用,所以該漏洞影響范圍廣大。

OpenSSL有兩種運(yùn)行模式:交互模式批處理模式。

直接輸入openssl回車(chē)進(jìn)入交互模式,輸入帶命令選項(xiàng)的openssl進(jìn)入批處理模式。

OpenSSL整個(gè)軟件包大概可以分成三個(gè)主要的功能部分:密碼算法庫(kù)、SSL協(xié)議庫(kù)以及應(yīng)用程序。OpenSSL的目錄結(jié)構(gòu)自然也是圍繞這三個(gè)功能部分進(jìn)行規(guī)劃的。 

對(duì)稱(chēng)加密算法

OpenSSL一共提供了8種對(duì)稱(chēng)加密算法,其中7種是分組加密算法,僅有的一種流加密算法是RC4。這7種分組加密算法分別是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持電子密碼本模式(ECB)、加密分組鏈接模式(CBC)、加密反饋模式(CFB)和輸出反饋模式(OFB)四種常用的分組密碼加密模式。其中,AES使用的加密反饋模式(CFB)和輸出反饋模式(OFB)分組長(zhǎng)度是128位,其它算法使用的則是64位。事實(shí)上,DES算法里面不僅僅是常用的DES算法,還支持三個(gè)密鑰和兩個(gè)密鑰3DES算法。 

非對(duì)稱(chēng)加密算法

OpenSSL一共實(shí)現(xiàn)了4種非對(duì)稱(chēng)加密算法,包括DH算法、RSA算法、DSA算法和橢圓曲線(xiàn)算法(EC)。DH算法一般用戶(hù)密鑰交換。RSA算法既可以用于密鑰交換,也可以用于數(shù)字簽名,當(dāng)然,如果你能夠忍受其緩慢的速度,那么也可以用于數(shù)據(jù)加密。DSA算法則一般只用于數(shù)字簽名。 

信息摘要算法

OpenSSL實(shí)現(xiàn)了5種信息摘要算法,分別是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事實(shí)上包括了SHA和SHA1兩種信息摘要算法,此外,OpenSSL還實(shí)現(xiàn)了DSS標(biāo)準(zhǔn)中規(guī)定的兩種信息摘要算法DSS和DSS1。 

密鑰和證書(shū)管理

密鑰和證書(shū)管理是PKI的一個(gè)重要組成部分,OpenSSL為之提供了豐富的功能,支持多種標(biāo)準(zhǔn)。 

首先,OpenSSL實(shí)現(xiàn)了ASN.1的證書(shū)和密鑰相關(guān)標(biāo)準(zhǔn),提供了對(duì)證書(shū)、公鑰、私鑰、證書(shū)請(qǐng)求以及CRL等數(shù)據(jù)對(duì)象的DER、PEM和BASE64的編解碼功能。OpenSSL提供了產(chǎn)生各種公開(kāi)密鑰對(duì)和對(duì)稱(chēng)密鑰的方法、函數(shù)和應(yīng)用程序,同時(shí)提供了對(duì)公鑰和私鑰的DER編解碼功能。并實(shí)現(xiàn)了私鑰的PKCS#12和PKCS#8的編解碼功能。OpenSSL在標(biāo)準(zhǔn)中提供了對(duì)私鑰的加密保護(hù)功能,使得密鑰可以安全地進(jìn)行存儲(chǔ)和分發(fā)。 

在此基礎(chǔ)上,OpenSSL實(shí)現(xiàn)了對(duì)證書(shū)的X.509標(biāo)準(zhǔn)編解碼、PKCS#12格式的編解碼以及PKCS#7的編解碼功能。并提供了一種文本數(shù)據(jù)庫(kù),支持證書(shū)的管理功能,包括證書(shū)密鑰產(chǎn)生、請(qǐng)求產(chǎn)生、證書(shū)簽發(fā)、吊銷(xiāo)和驗(yàn)證等功能。 

事實(shí)上,OpenSSL提供的CA應(yīng)用程序就是一個(gè)小型的證書(shū)管理中心(CA),實(shí)現(xiàn)了證書(shū)簽發(fā)的整個(gè)流程和證書(shū)管理的大部分機(jī)制。

實(shí)例

1、消息摘要算法應(yīng)用例子

用SHA1算法計(jì)算文件file.txt的哈西值,輸出到stdout:

# openssl dgst -sha1 file.txt

用SHA1算法計(jì)算文件file.txt的哈西值,輸出到文件digest.txt:

# openssl sha1 -out digest.txt file.txt

用DSS1(SHA1)算法為文件file.txt簽名,輸出到文件dsasign.bin。簽名的private key必須為DSA算法產(chǎn)生的,保存在文件dsakey.pem中。

# openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt

用dss1算法驗(yàn)證file.txt的數(shù)字簽名dsasign.bin,驗(yàn)證的private key為DSA算法產(chǎn)生的文件dsakey.pem。

# openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt

用sha1算法為文件file.txt簽名,輸出到文件rsasign.bin,簽名的private key為RSA算法產(chǎn)生的文件rsaprivate.pem。

#openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt

# 用sha1算法驗(yàn)證file.txt的數(shù)字簽名rsasign.bin,驗(yàn)證的public key為RSA算法生成的rsapublic.pem。

# openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt

2、對(duì)稱(chēng)加密應(yīng)用例子

對(duì)稱(chēng)加密應(yīng)用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密結(jié)果輸出到文件ciphertext.bin。

# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin

用DES3算法的OFB模式解密文件ciphertext.bin,提供的口令為trousers,輸出到文件plaintext.doc。注意:因?yàn)槟J讲煌撁畈荒軐?duì)以上的文件進(jìn)行解密。

# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers

用Blowfish的CFB模式加密plaintext.doc,口令從環(huán)境變量PASSWORD中取,輸出到文件ciphertext.bin。

# openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD

給文件ciphertext.bin用base64編碼,輸出到文件base64.txt。

# openssl base64 -in ciphertext.bin -out base64.txt

用RC5算法的CBC模式加密文件plaintext.doc,輸出到文件ciphertext.bin,salt、key和初始化向量(iv)在命令行指定。

# openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K 89D4B1678D604FAA3DBFFD030A314B29

3、Diffie-Hellman應(yīng)用例子

使用生成因子2和隨機(jī)的1024-bit的素?cái)?shù)產(chǎn)生D0ffie-Hellman參數(shù),輸出保存到文件dhparam.pem

# openssl dhparam -out dhparam.pem -2 1024

從dhparam.pem中讀取Diffie-Hell參數(shù),以C代碼的形式,輸出到stdout。

# openssl dhparam -in dhparam.pem -noout -C

4、DSA應(yīng)用例子應(yīng)用例子

生成1024位DSA參數(shù)集,并輸出到文件dsaparam.pem。

# openssl dsaparam -out dsaparam.pem 1024

使用參數(shù)文件dsaparam.pem生成DSA私鑰匙,采用3DES加密后輸出到文件dsaprivatekey.pem

# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem

使用私鑰匙dsaprivatekey.pem生成公鑰匙,輸出到dsapublickey.pem

# openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem

從dsaprivatekey.pem中讀取私鑰匙,解密并輸入新口令進(jìn)行加密,然后寫(xiě)回文件dsaprivatekey.pem

# openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin

5、RSA應(yīng)用例子

產(chǎn)生1024位RSA私匙,用3DES加密它,口令為trousers,輸出到文件rsaprivatekey.pem

# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024

從文件rsaprivatekey.pem讀取私匙,用口令trousers解密,生成的公鑰匙輸出到文件rsapublickey.pem

# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem

用公鑰匙rsapublickey.pem加密文件plain.txt,輸出到文件cipher.txt

# openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt

使用私鑰匙rsaprivatekey.pem解密密文cipher.txt,輸出到文件plain.txt

# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt

用私鑰匙rsaprivatekey.pem給文件plain.txt簽名,輸出到文件signature.bin

# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin

用公鑰匙rsapublickey.pem驗(yàn)證簽名signature.bin,輸出到文件plain.txt

# openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain

從X.509證書(shū)文件cert.pem中獲取公鑰匙,用3DES加密mail.txt,輸出到文件mail.enc

# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem

從X.509證書(shū)文件cert.pem中獲取接收人的公鑰匙,用私鑰匙key.pem解密S/MIME消息mail.enc,結(jié)果輸出到文件mail.txt

# openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt

cert.pem為X.509證書(shū)文件,用私匙key,pem為mail.txt簽名,證書(shū)被包含在S/MIME消息中,輸出到文件mail.sgn

# openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn

驗(yàn)證S/MIME消息mail.sgn,輸出到文件mail.txt,簽名者的證書(shū)應(yīng)該作為S/MIME消息的一部分包含在mail.sgn中

# openssl smime -verify -in mail.sgn -out mail.txt

總結(jié)

以上所述是小編給大家介紹的Linux 中的 Openssl命令及實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • CentOS下對(duì)shell腳本加密的二種方法

    CentOS下對(duì)shell腳本加密的二種方法

    這篇文章主要介紹了CentOS下對(duì)shell腳本加密的二種方法,本文介紹了gzexe、shc兩款加密工具,并分別講解了加密方法,需要的朋友可以參考下
    2014-12-12
  • linux修改tomcat默認(rèn)訪(fǎng)問(wèn)項(xiàng)目的具體步驟(必看篇)

    linux修改tomcat默認(rèn)訪(fǎng)問(wèn)項(xiàng)目的具體步驟(必看篇)

    下面小編就為大家?guī)?lái)一篇linux修改tomcat默認(rèn)訪(fǎng)問(wèn)項(xiàng)目的具體步驟(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • iredmail下安裝腳本分析(一)---get_all.sh 文件所在目錄為PKGS

    iredmail下安裝腳本分析(一)---get_all.sh 文件所在目錄為PKGS

    這篇文章主要介紹了iredmail下安裝腳本分析(一)---get_all.sh 文件所在目錄為PKGS的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • Linux下利用Opencv打開(kāi)筆記本攝像頭問(wèn)題

    Linux下利用Opencv打開(kāi)筆記本攝像頭問(wèn)題

    這篇文章主要介紹了Linux下利用Opencv打開(kāi)筆記本攝像頭問(wèn)題,需要的朋友可以參考下
    2017-08-08
  • 你可能不知道的Shell(有趣的知識(shí))

    你可能不知道的Shell(有趣的知識(shí))

    這篇文章向大家介紹Shell一些非廣為人知、但卻實(shí)用有趣的知識(shí),權(quán)當(dāng)品嘗shell主食后的甜點(diǎn)吧
    2013-07-07
  • Linux?ps命令詳解及Linux查看進(jìn)程的操作方法

    Linux?ps命令詳解及Linux查看進(jìn)程的操作方法

    這篇文章主要介紹了Linux?ps命令詳解,Linux查看進(jìn)程的操作方法,ps命令常用的方式有三種,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Linux查看磁盤(pán)信息的命令詳解

    Linux查看磁盤(pán)信息的命令詳解

    這篇文章主要介紹了Linux查看磁盤(pán)信息的命令,df與du命令,df 命令主要用于需要檢查文件系統(tǒng)上已使用和可用的磁盤(pán)空間的數(shù)量,du命令主要用于需要了解系統(tǒng)上的目錄或文件所使用的磁盤(pán)空間量,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • shell腳本一鍵安裝php7的實(shí)例(推薦)

    shell腳本一鍵安裝php7的實(shí)例(推薦)

    下面小編就為大家?guī)?lái)一篇shell腳本一鍵安裝php7的實(shí)例(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Shell交互批量更改主機(jī)名的方法

    Shell交互批量更改主機(jī)名的方法

    大家可能會(huì)遇到這種情況,需要批量修改主機(jī)名和同步hosts文件到多臺(tái)主機(jī),例如新購(gòu)置了一批云服務(wù)器等,可能主機(jī)名稱(chēng)上并不能滿(mǎn)足你的命名規(guī)則或規(guī)范,但如果一臺(tái)臺(tái)去更改可能就太慢又無(wú)聊,所以shell腳本絕對(duì)是你的最佳選擇。下面看看Shell批量更改主機(jī)名的方法。
    2016-12-12
  • 使用shell腳本找出網(wǎng)站的空頁(yè)面和404錯(cuò)誤頁(yè)面

    使用shell腳本找出網(wǎng)站的空頁(yè)面和404錯(cuò)誤頁(yè)面

    這篇文章主要介紹了使用shell腳本找出網(wǎng)站的空頁(yè)面和404錯(cuò)誤頁(yè)面,本文使用一句話(huà)實(shí)現(xiàn),需要的朋友可以參考下
    2014-11-11

最新評(píng)論

鄂托克前旗| 邮箱| 台南市| 方正县| 花莲市| 华安县| 崇州市| 甘谷县| 彭州市| 平塘县| 百色市| 都安| 鄂伦春自治旗| 宽城| 乌鲁木齐县| 安吉县| 侯马市| 贵德县| 波密县| 饶平县| 页游| 修文县| 金溪县| 元朗区| 陕西省| 抚松县| 威远县| 河津市| 开封市| 山东省| 永登县| 大同县| 夹江县| 渭南市| 乐业县| 丘北县| 同心县| 景宁| 武强县| 平湖市| 磴口县|