日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php openssl 处理pkcs8,【转载】OpenSSL命令---pkcs8

發布時間:2023/12/31 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php openssl 处理pkcs8,【转载】OpenSSL命令---pkcs8 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用途:

pkcs8格式的私鑰轉換工具。它處理在PKCS#8格式中的私鑰文件。它可以用多樣的PKCS#5 (v1.5 and v2.0)和PKCS#12算法來處理沒有解密的PKCS#8 PrivateKeyInfo格式和EncryptedPrivateKeyInfo格式。

用法:

openssl pkcs8 [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-passin arg] [-out filename]

[-passout arg] [-topk8] [-noiter] [-nocrypt] [-nooct] [-embed] [-nsdb] [-v2 alg] [-v1 alg] [-engine id]

選項說明:

-inform PEM|DER::輸入文件格式,DER或者PEM格式。DER格式采用ASN1的DER標準格式。一般用的多的都是PEM格式,就是base64編碼格式。

-outform DER|PEM:輸出文件格式,DER或者PEM格式。

-in filename:輸入的密鑰文件,默認為標準輸入。如果密鑰被加密,會提示輸入一個密鑰口令。

-passin arg:輸入文件口令保護來源。

-out filename:輸出文件,默認為標準輸出。如果任何加密操作已經執行,會提示輸入一個密鑰值。輸出的文件名字不能和輸入的文件名一樣。

-passout arg:輸出文件口令保護來源。

-topk8:通常的是輸入一個pkcs8文件和傳統的格式私鑰文件將會被寫出。設置了此選項后,位置轉換過來:輸入一個傳統格式的私鑰文件,輸出一個PKCS#8格式的文件。

-noiter:MAC保護計算次數為1。

-nocrypt:PKCS#8密鑰產生或輸入一般用一個適當地密鑰來加密PKCS#8 EncryptedPrivateKeyInfo結構。設置了此選項后,一個不加密的PrivateKeyInfo結構將會被輸出。這個選項一直不加密私鑰文件,在絕對必要的時候才能夠使用。某些軟件例如一些JAVA代碼簽名軟件使用不加密的私鑰文件。

-nooct:這個選項產生的RSA私鑰文件是一個壞的格式,一些軟件將會使用。特別的是,私鑰文件必須附上一個八位組字符串,但是一些軟件僅僅包含本身的結構體沒有使八位組字符串所環繞。不采用八位組表示私鑰。

-embed:這個選項產生的RSA私鑰文件是一個壞的格式。在私鑰結構體中采用嵌入式DSA參數格式。在這個表單中,八位組字符串包含了ASN1 SEQUENCE中的兩種結構:一個SEQUENCE包含了密鑰參數,一個ASN1 INTEGER包含私鑰值。

-nsdb:這個選項產生的RSA私鑰文件是一個壞的格式并兼容了Netscape私鑰文件數據庫。采用NetscapeDB的DSA格式。

-v2 alg:采用PKCS#5 v2.0,并指定加密算法,默認的是PKCS#8私鑰文件被叫做B(該算法用56字節的DES加密但是在PKCS#5 v1.5中有更加強壯的加密算法)的加密算法用口令進行加密。用B選項,PKCS#5 v2.0相關的算法將會被使用,可以是des3(168字節)和rc2(128字節),推薦des3。

-v1 alg:采用PKCS#5 v1.5或pkcs12,并指定加密算法。可采用的算法見下面。

-engine id:指定硬件引擎。

注意:

加密了的PEM編碼PKCS#8文件表單用下面的頭部和尾部:

-----BEGIN ENCRYPTED PRIVATE KEY-----

-----END ENCRYPTED PRIVATE KEY-----

未加密的表單用:

-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----

跟傳統的SSLeay算法相比,用PKCS#5 v2.0系列的算法加密私鑰,有更高的安全性以及迭代次數。于是附加的安全性是經過深思熟慮的。

默認的加密算法僅僅是56字節的,是因為它是PKCS#8所支持的最好的方法。

有一些軟件使用PKCS#12基于密鑰的加密算法來加密PKCS#8格式的私鑰:它們會自動的處理但是沒有選項來操作。

在PKCS#8格式中,有可能的是輸出DER編碼格式的經過加密的私鑰文件,是因為加密的詳細說明包含在DER等級中,相反的是傳統的格式包含在PEM鄧麗中。

PKCS#5 v1.5和PKCS#12算法:

各種各樣的算法可以被選項-v1所使用。包含PKCS#5 v1.5和PKCS#12算法。詳細描述如下:

B:這兩個算法包含在PKCS#5 v1.5中。它們僅僅提供56字節的保護,加密算法用DES。

B:它們在傳統的PKCS#5 v1.5中沒有被提到,但是它們用同樣地密鑰引出算法,被一些軟件所支持。在PKCS#5 v2.0中所提到。它們使用64字節的RC2以及56字節的DES。

B:它們是PKCS#12基于密鑰的加密算法,它們允許使用高強度的加密算法,例如3des或128位的RC2。

實例:

用3des算法將傳統的私鑰文件轉換為PKCS#5 v2.0:

openssl pkcs8 -in key.pem -topk8 -v2 des3 -out enckey.pem

用PKCS#5 1.5兼容的DES算法將私鑰文件轉換為pkcs8文件:

openssl pkcs8 -in ocspserverkey.pem -topk8 -out ocspkcs8key.pem

用PKCS#12兼容的3DES算法將私鑰文件轉換為pkcs8文件:

openssl pkcs8 -in key.pem -topk8 -out enckey.pem -v1 PBE-SHA1-3DES

讀取一個DER格式加密了的PKCS#8格式的私鑰:

openssl pkcs8 -inform DER -nocrypt -in key.der -out key.pem

轉換一個PKCS#8格式的私鑰到傳統的私鑰:

openssl pkcs8 -in pk8.pem -out key.pem

pkcs8中的私鑰以明文存放:

openssl pkcs8 -in ocspserverkey.pem -topk8 -nocrypt -out ocspkcs8key.pem

標準:

PKCS#5 v2.0的測試向量的實現是以通告的形式用高強度的迭代次數算法3DES、DES和RC2來加密的。很多人要確認能夠解密產生的私鑰。

PKCS#8格式的DSA私鑰文件沒有備注文件中的:在PKCS#11 v2.01中的11.9節被隱藏了的。OpenSSL的默認DSA PKCS#8私鑰格式隱藏在這個標準中。

BUGs:

必須有一個選項打印使用的加密算法的其他詳細細節,例如迭代次數。

PKCS#8用3DES和PKCS#5 v2.0必須是默認的私鑰文件:目前為了命令的兼容性。

我的微信:graent_hu

歡迎掃碼加我的微信好友,有什么問題我們可以一起探討,有什么需要也隨時歡迎發消息給我~

轉載請注明出處:

本文鏈接:https://www.wlyc.cn/post-184.html

總結

以上是生活随笔為你收集整理的php openssl 处理pkcs8,【转载】OpenSSL命令---pkcs8的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。