2014-05-16 18 views
0

首先,感谢,同时也因为这个问题我是菜鸟一些耐心...... 我有一个公开的对象:在Java中有一个公开的对象处理的时间

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

,我需要得到这样的:

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

(对于我所得到的是一个正确的例子)

我真的鸵鸟政策知道如何处理这种类型的对象,所以我真要是it'鸵鸟政策知道这很愚蠢或难以实现。

编辑:(进一步说明) 在这种情况下,我正在处理一个PublicKey对象,因为我需要解析一个End Entity证书的字段,所以我使用net.ripe.commons.certification库。 当我得到公钥时,我用X509cert的.getPublicKey()得到它,我看到它是在第一个发布代码中显示的。我需要将其存储在数据库的某个字段中,例如,如果我使用.getEncode().toString(),它会给我提供的不正确的东西。 我已经知道在网络上的其他应用程序的第二个代码(这是我想如何将其保存在数据库中)对应于第一个。

感谢

+0

您能解释一下吗? – FoggyDay

+0

我解释了一点,我有点在这个问题,所以我真的不知道什么时候是很少的信息... – Soborno

回答

0

因为预期这是我的错...... 在这种情况下,问题是与... .getEncode().toString(),我用

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

当正确的使用将是

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

感谢您的帮助

-1

你不应该试图和它存储为一个字符串,但作为一个字节数组,或做不到这一点,像下面的Base64编码的值,如果你在使用一个字符串设定。

+0

谢谢,我已经使用Base64编码值,但因为我没有得到任何东西对,我停止使用它,多亏了你指出了我再次尝试,并意识到我真正的问题 – Soborno