您好,登錄后才能下訂單哦!
本篇內容介紹了“RSA密鑰JAVA和C#的區別有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
ASN.1、PKCS
是最初的,也是最主要的RSA公鑰和私鑰的語法標準,被RSA Lab
所維護。ASN.1、PKCS#1
都定義了公鑰和私鑰的類型——序列化的數字。
為了下一個層次的抽象(適當的包裝),現在一般使用的組合是:PKCS#8
的私鑰,X.509
的公鑰 。
PKCS
語法主要用于私鑰,其內部標準目前有10種。目前JAVA
普遍使用的是PKCS#8
,用作私鑰格式。X.509
語法主要用于公鑰,廣泛使用于web
瀏覽器和SLL
。
3種語法標準的公私鑰可以實現相互轉化,其核心為ASN1語法中的整數值(modulus
,PublicExponent
,privateExponent
),其余的數值都可以經過計算后得出。
.NET
使用的是標準的RSA
格式,然后將其中的數字base64
編碼后,生成XML
進行存儲。
java中使用的是PKCS#8
,、X.509
的公私鑰語法,存儲的都是相應的JAVA類自動生成的base64
字符串。
由于存儲格式的區別,在相互轉換、讀取的時候,需要理解RSA
相關的知識,才能正確使用類來轉換。
C#
中的公私鑰使用XML字符串進行存儲,讀取時直接讀入字符串即可。
由于C#使用的是標準的RSA格式,因此JAVA的RSAPublicKeySpec
、RSAPrivateKeySpec
配置類的核心參數(modulus
,PublicExponent
,privateExponent
)都可以從對應XML中的節點值(Modulus-modulus
、Exponent-PublicExponent
、D-privateExponent
)base64
解碼后獲取。然后將其傳入JAVA配置類中,然后根據配置類生成相應的RSA
公私鑰。
View Code
JAVA
中的公私鑰使用base64
進行存儲,解碼成字節數組后,首先需要生成相應的配置對象(PKCS#8
,、X.509
),根據配置對象生成RSA
公私鑰。
私鑰:
C#
使用的是標準的RSA
格式,PKCS#1
語法中包含了標準RSA
格式私鑰中的所有整數值。配置對象需要生成PKCS#1
語法的RSA
對象(RSAPrivateCrtKey
),獲取對象屬性,自行構造私鑰XML
。
View Code
公鑰:
公鑰跟私鑰生成步驟相同,配置對象生成標準的RSA
對象(RSAPublicKey
)。
View Code
“RSA密鑰JAVA和C#的區別有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。