gpt4 book ai didi

java - 将字符串转换为 key 以进行加密

转载 作者:行者123 更新时间:2023-11-30 01:46:37 26 4
gpt4 key购买 nike

我试图将我在 RSA 中的私钥从字符串转换为 key ,但由于某种原因它输出系统错误。

static private Key privatekey;
try{
byte[] keyprivBytes = Base64.decode(KeypriString,0);
PKCS8EncodedKeySpec specpriv = new PKCS8EncodedKeySpec(keyprivBytes);
KeyFactory keyFactorypriv = KeyFactory.getInstance("RSA");
privatekey = keyFactorypriv.generatePrivate(specpriv); <--(here is where the logcat says the code is broken)
}catch(UnsupportedEncodingException | InvalidKeySpecException | NoSuchAlgorithmException e){
e.printStackTrace();
}

其中keypriString是我的私钥所在的String

日志:

11-12 11:11:20.066 15141-15141/<pakage name> W/System.err: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
11-12 11:11:20.066 15141-15141/<pakage name> W/System.err: at com.android.org.conscrypt.OpenSSLKey.getPrivateKey(OpenSSLKey.java:180)
11-12 11:11:20.076 15141-15141/<pakage name> W/System.err: at com.android.org.conscrypt.OpenSSLRSAKeyFactory.engineGeneratePrivate(OpenSSLRSAKeyFactory.java:64)
11-12 11:11:20.076 15141-15141/<pakage name> W/System.err: at java.security.KeyFactory.generatePrivate(KeyFactory.java:187)
11-12 11:11:20.076 15141-15141/<pakage name> W/System.err: at <pakage name>.Crypto.<init>(Crypto.java:62)

谁能告诉我问题所在??

最佳答案

1 : 一步一步验证编码,然后解码,并跟踪每一步到输出:你会看到它崩溃的地方

2:可能的错误:Base64.decode 给出 null 因为这不是一个好的 base64 字符串

3 : 还是您混淆了 PKCS 和 X509?

你应该看看 Converting Strings to encryption keys and vice versa java, 这: Java asymmetric encryption: preferred way to store public/private keys, 这: Create PrivateKey and PublicKey from a String base64 encoding with DER format

关于java - 将字符串转换为 key 以进行加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33626905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com