簡體   English   中英

處理Java中的PublicKey對象

[英]Dealing with a PublicKey object in Java

首先,感謝您的時間,也感謝自從我在這個主題上成為新手以來的耐心...我有一個PublicKey對象:

Sun RSA public key, 2048 bits
  modulus: 18077203024541758363929020498733829335491380051700307922133794962061975747420394877143889885945336305414295314139507244695177887549094887061986620463327220586346030432731550617421168238140740600157137764348364595070740870977422155213465409492752709350141858141989090093641680035205975043549124382974765930336756768548921056751935659732417661594872253800976031104054204421629711597470770033907934006101453865340621763385927121144139876123093050849040638804744781745077880021130241262817005818066815987603380244330904985993553253768481242544555268132089382269330678737161421709242927983939704722774178497866252217753513
  public exponent: 65537

我需要像這樣獲取它:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjzLzvHyJXagAfmQNgRSDJ3vIStkpy3I3 FOW4xRx+WkoEbOV9K7WFgDB2PTvl+fAHhY5mvGGhZZfGGO0THEFZdBqDlZEZqbg6uW/QDh4cDdJb NFhAzIeXSPFSdLZ15i5YIzcPVKSlm7Cuf0ogUOq8qXnlEdfd47mrwp7KrT2vtgkrLpkyKiUE6e/I NrQYgPADSv0QyTBgZCxqt5wM70IQtjEi4EcSzgwCwG0aEbjo8Imv42BH1Zk8igs1A/tasLeSHAMY xpqAvGf8zHncSsAqdzJmziRn1tZUYN2WHKpW2mWuDVy5ACYePMv7IzzvTMAWjC7G6c8y5my+MmMe QmAfqQIDAQAB

(對於我所得到的,這是一個正確的例子)

我真的不知道如何處理這種對象,所以我真的不知道它是不是很愚蠢或很難實現。

編輯:(更多說明)在這種情況下,我正在處理與net.ripe.commons.certification庫一起使用的PublicKey對象,因為我需要解析最終實體證書的字段。 當我得到公鑰時,我得到的是.getPublicKey() ,我看到的是在發布的第一個代碼中所顯示的。 我需要將其存儲在數據庫的字段中,例如,如果我使用.getEncode().toString() ,它會給我帶來不正確的信息。 對於網絡中的其他應用程序,我已經知道第二個代碼(這就是我想將其保存在數據庫中的方式)與第一個代碼相對應。

謝謝

正如預期的那樣,這是我的錯誤...在這種情況下,問題出在... .getEncode().toString() ,我正在使用

String key = Base64.encodeBase64(x509rc.getPublicKey().getEncoded()).toString() 

什么時候正確使用

String key = new String(Base64.encodeBase64(x509rc.getPublicKey().getEncoded()))

謝謝您的幫助

您不應該嘗試將其存儲為字符串,而是存儲為字節數組,否則,如果設置為使用字符串,則不能存儲為類似於Base64編碼的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM