pkcs8格式的私鑰
① 如何生成支付寶商戶私鑰和商戶公鑰攻略
操作步驟
(1)下載開發指南和集成資料
登錄支付寶,點擊 我的商家服務->手機無線收款->快捷支付(無線)
(2)解壓下載的壓縮包(WS_SECURE_PAY),找到並解壓 openssl-0.9.8k_WIN32(RSA 密鑰生成工具).zip 工具包
(3)生成原始RSA商戶私鑰文件
假設解壓後的目錄為 c:\alipay,命令行進入目錄 C:\alipay\bin,執行「openssl genrsa -out rsa_private_key.pem 1024」,在 C:\alipay\bin 下會生成文件rsa_private_key.pem, 其內容為原始的商戶私鑰(請妥善保存該文件)
(4)將原始RSA商戶私鑰轉換為pkcs8格式
命令行執行「 openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt」得到轉換為 pkcs8 格式的私鑰。復制下圖紅框內的內容至新建 txt 文檔, 去掉換行,最後另存為「private_key.txt」(請妥善保存,簽名時使用)。
(5)生成RSA商戶公鑰
命令行執行「 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem」, 在 C:\alipay\bin 文件夾下生成文件 rsa_public_key.pem。接著用記事本打開 rsa_public_key.pem,復制全部內容至新建的 txt 文檔,刪除文件頭「-----BEGIN PUBLIC KEY-----」與文件尾「-----END PUBLIC KEY-----」及空格、換行,如下圖。最後得到一 行字元串並保存該 txt 文件為「public_key.txt」。
(6) 上傳商戶公鑰至支付寶
瀏覽器訪問 並用簽約帳號登錄,點擊菜單欄「我的產品」,右側點擊「密鑰管理」
點擊「上傳」,選擇步驟(3)生成的「public_key.txt」並完成上傳。
② 如何通過RSA生成唯一的公鑰和私鑰
在ubuntu上要使用openssl的話需要先進行安裝,命令如下:
sudo apt-get install openssl
安裝完成就可以使用openssl了。
首先需要進入openssl的交互界面,在命令行了輸入openssl即可;
1)生成RSA私鑰:
genrsa -out rsa_private_key.pem 1024
該命令會生成1024位的私鑰,生成成功的界面如下:
3) 生成RSA公鑰
輸入命令rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,並回車
③ 怎麼把已有的RSA公私鑰轉換成PKCS8格式
用命令:抄--RSA私鑰(傳襲統格式)openssl genrsa -out rsa_private_key.pem 1024--傳統格式私鑰轉換PKCS#8格式openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt--RSA公鑰openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
④ 如何編程讀取PKCS#12格式的證書與私鑰
pkcs8格式的私鑰轉換工具。它處理在PKCS#8格式中的私鑰文件。它可以用多樣的PKCS#5 (v1.5 and v2.0)和 PKCS#12演算法來處理沒有解密的PKCS#8 PrivateKeyInfo格式和EncryptedPrivateKeyInfo格式。
用法:
[cpp] view plain
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:輸出文件口令保護來源。
⑤ ios 私鑰需要轉pkcs8格式嗎
主要是規定好數據的編碼即可,例如用UTF-8或者用GBK兩邊同步就行了。
⑥ php rsa密鑰經過pkcs8編碼的怎麼進行簽名
簽名代碼:
staticprotectedfunctionsign($data,$priKey){
$res=openssl_get_privatekey($priKey);
//調用openssl內置簽名方法,生成簽名$sign
openssl_sign($data,$sign,$res);
//釋放資源
openssl_free_key($res);
//base64編碼
$sign=base64_encode($sign);
return$sign;
}
⑦ rsa 公鑰 私鑰 生成 需要些什麼參數
在ubuntu上要使用openssl的話需要先進行安裝,命令如下: sudo apt-get install openssl 安裝完成就可以使用openssl了。 首先需要進入openssl的交互界面,在命令行了輸入openssl即可; 1)生成RSA私鑰: genrsa -out rsa_private_key.pem 1024 該命令會生成1024位的私鑰,生成成功的界面如下: 此時我們就可以在當前路徑下看到rsa_private_key.pem文件了。 2)把RSA私鑰轉換成PKCS8格式輸入命令pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt,並回車得到生成功的結果,這個結果就是PKCS8格式的私鑰,如下圖: 3) 生成RSA公鑰 輸入命令rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,並回車,得到生成成功的結果,如下圖: 此時,我們可以看到一個文件名為rsa_public_key.pem的文件,打開它,可以看到-----BEGIN PUBLIC KEY-----開頭,-----END PUBLIC KEY-----結尾的沒有換行的字元串,這個就是公鑰。
⑧ ios支付寶怎麼把私鑰轉換成pkcs8 格式
用途:
pkcs8格式的私鑰轉換工具。它處理在PKCS#8格式中的私鑰文件。它可以用多樣的PKCS#5 (v1.5 and v2.0)和 PKCS#12演算法來處理沒有解密的PKCS#8 PrivateKeyInfo格式和EncryptedPrivateKeyInfo格式。
用法:
[cpp] view plain
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<pbeWithMD5AndDES-CBC>(該演算法用56位元組的DES加密但是在PKCS#5 v1.5中有更加強壯的加密演算法)的加密演算法用口令進行加密。用B<-v2>選項,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<PBE-MD2-DES PBE-MD5-DES>:這兩個演算法包含在PKCS#5 v1.5中。它們僅僅提供56位元組的保護,加密演算法用DES。
B<PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES>:它們在傳統的PKCS#5 v1.5中沒有被提到,但是它們用同樣地密鑰引出演算法,被一些軟體所支持。在PKCS#5 v2.0中所提到。它們使用64位元組的RC2以及56位元組的DES。
B<PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128 PBE-SHA1-RC2-40>:它們是PKCS#12基於密鑰的加密演算法,它們允許使用高強度的加密演算法,例如3des或128位的RC2。
實例:
用3des演算法將傳統的私鑰文件轉換為PKCS#5 v2.0:
[cpp] view plain
openssl pkcs8 -in key.pem -topk8 -v2 des3 -out enckey.pem
用PKCS#5 1.5兼容的DES演算法將私鑰文件轉換為pkcs8文件:
[html] view plain
openssl pkcs8 -in ocspserverkey.pem -topk8 -out ocspkcs8key.pem
用PKCS#12兼容的3DES演算法將私鑰文件轉換為pkcs8文件:
[html] view plain
openssl pkcs8 -in key.pem -topk8 -out enckey.pem -v1 PBE-SHA1-3DES
讀取一個DER格式加密了的PKCS#8格式的私鑰:
[cpp] view plain
openssl pkcs8 -inform DER -nocrypt -in key.der -out key.pem
轉換一個PKCS#8格式的私鑰到傳統的私鑰:
[cpp] view plain
openssl pkcs8 -in pk8.pem -out key.pem
pkcs8中的私鑰以明文存放:
[html] view plain
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必須是默認的私鑰文件:目前為了命令的兼容性。
⑨ 怎樣生成公鑰和PKCS8格式私鑰
常用命令如下:--生成RSA私鑰(傳統格式的)openssl genrsa -out rsa_private_key.pem 1024--將傳統格式的私鑰回轉換成答PKCS#8格式的openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt--生成RSA公鑰openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem