包含javaasn1sequence的詞條

本文目錄一覽:

ASN.1的定義

抽象語法定義:

ASN.1是描述在網路上傳輸信息格式的標準方法。它有兩部分:一部分描述信息內數據,數據類型及序列格式;另一部分描述如何將各部分組成消息。它原來是作為X.409的一部分而開發的,後來才自己獨立成為一個標準。ASN.1在OSI的ISO 8824/ITU X.208(說明語法)和ISO 8825/ITU X.209(說明基本編碼規則)規範。

例如:

Report ::= SEQUENCE {

author OCTET STRING,

title OCTET STRING,

body OCTET STRING,

biblio Bibliography

}

在這個例子中,”Report”是由名字類型的信息組成的,而SEQUENCE表示消息是許多數據單元構成的,前三個數據單元的類型是OCTET STRING,而最後一個數據類型見下面的ASN.1語法表示它的意義:

Bibliography ::= SEQUENCE {

author OCTET STRING

title OCTET STRING

publisher OCTET STRING

year OCTET STRING

}

如何用java實現asn1編解碼..急急急急急急急急急!!!

byte[] content=contentStr.getBytes(“asn1”); //如果asn1是一種編碼,這就是將字元串轉換成asn1的二進位

ios支付寶怎麼把私鑰轉換成pkcs8 格式

用途:

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

用法:

[cpp] view plaincopy

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私鑰文件被叫做BpbeWithMD5AndDES-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 演算法。詳細描述如下:

BPBE-MD2-DES PBE-MD5-DES:這兩個演算法包含在PKCS#5 v1.5中。它們僅僅提供56位元組的保護,加密演算法用DES。

BPBE-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。

BPBE-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 plaincopy

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

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

[html] view plaincopy

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

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

[html] view plaincopy

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

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

[cpp] view plaincopy

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

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

[cpp] view plaincopy

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

pkcs8中的私鑰以明文存放:

[html] view plaincopy

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必須是默認的私鑰文件:目前為了命令的兼容性。

總是報找不到方法

要把項目所需的Jar包都上傳到相應的目錄中。

還有就是,你檢查是否在代碼中使用了絕對路徑。

上網的話,必須用相對路徑,多數都這情況。

asn1primitive.java在哪個包裡面?

 java沒有utils這個類,除非是同事寫的,沒有告訴自己,所以找不到

不過java有 java.util這個package。

包含集合框架、遺留的 collection 類、事件模型、日期和時間設施、國際化和各種實用工具類(字元串標記生成器、隨機數生成器和位數組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時間處理模式、日期時間工具等各類常用工具包

ASN.1的數據結構

ASN.1 還能夠定義如下的數據結構類型:

結構 ( SEQUENCE )

列表 ( SEQUENCE OF )

類型選擇 ( CHOICE )

原創文章,作者:SMCKD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/315718.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SMCKD的頭像SMCKD
上一篇 2025-01-09 12:14
下一篇 2025-01-09 12:14

相關推薦

發表回復

登錄後才能評論