Corda - 解码Base58公钥不成功。

问题描述 投票:0回答:1

将Base58公钥解码回 PublicKey 实例似乎并不奏效。

parsePublicKeyBase58("DLG9nscvKPbgagoLP7jr4oc5FygazKr7pdADZMGFizmpV8")

在 "main "线程中出现异常 java.lang.IllegalArgumentException: failed to construct sequence from byte[]: unknown tag 9 encountered at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source) at org.bouncycastle.asn1.x509.SubjectPublicKeyInfo. getInstance(Unknown Source) at net.corda.core.crypto.Crypto.decodePublicKey(Crypto.kt:343) at net.corda.core.utilities.EncodingUtils.parsePublicKeyBase58(EncodingUtils.kt:81) at test.Program$Companion.main(Program.kt:15) at test.Program.main(Program.kt)

这里怎么了?

你得到的是什么错误 - Sneha Damle?

parsePublicKeyBase58("G9nscvKPbgagoLP7jr4oc5FygazKr7pdADZMGFizmpV8")

线程 "main "中的异常 java.lang.IllegalArgumentException: failed to construct sequence from byte[].DEF length 31 object truncated by 1 at org.bouncycastle.asn1.ASN1Sequence.org: 在org.bouncycastle.asn1.ASN1Sequence.getInstance(未知源)处,DEF长度为31的对象被1截断,在org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance(未知源)处。 在 net.corda.core.crypto.Crypto.decodePublicKey(Crypto.kt:343) at net.corda.core.utilities.EncodingUtils.parsePublicKeyBase58(EncodingUtils.kt:81) at test.ProgramKt.main(Program.kt:6)

bouncycastle corda public-key
1个回答
1
投票

你可能使用了一个不正确的Base58字符串。我做了下面的工作,它的工作。

将一个公钥编码为Base58

Base58.encode(party.getOwningKey().getEncoded()).toString();

这给了我一个字符串 GfHq2tTVk9z4eXgyH7WThpV3Qn7zdCm4cKw8J5x8kVGnVkGtgAmh3KKE7EN4

解码了。

PublicKey publicKey = EncodingUtils.parsePublicKeyBase58("GfHq2tTVk9z4eXgyH7WThpV3Qn7zdCm4cKw8J5x8kVGnVkGtgAmh3KKE7EN4");
© www.soinside.com 2019 - 2024. All rights reserved.