Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为公钥_Java_Android_Security_Public Key Encryption - Fatal编程技术网

Java 将字符串转换为公钥

Java 将字符串转换为公钥,java,android,security,public-key-encryption,Java,Android,Security,Public Key Encryption,我将公钥作为字符串从web服务器传递到android设备,在该设备中,公钥从字符串转换回公钥。在android设备上,我遇到了这个错误 java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0c0000af:ASN.1 encoding routines:OPENSSL_internal:TOO_LONG android类: @Override public void onCreate(Bun

我将公钥作为字符串从web服务器传递到android设备,在该设备中,公钥从字符串转换回公钥。在android设备上,我遇到了这个错误

java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0c0000af:ASN.1 encoding routines:OPENSSL_internal:TOO_LONG
android类:

@Override
public void onCreate(Bundle savedInstanceState) {
   /*
    * Other code
    */
   PublicKey publicKey = KeyUtil.StringToPublicKey(publicKeyString);
}
主要类别:

Public class KeyUtil {

public static byte[] publicKeyToByteArray(PublicKey key) {
    return Base64.encode(key.getEncoded(), Base64.DEFAULT);
}

public static PublicKey byteArrayToPublicKey(byte [] array) throws NoSuchAlgorithmException, InvalidKeySpecException {
    X509EncodedKeySpec spec = new X509EncodedKeySpec(Base64.decode(array, Base64.DEFAULT));
    KeyFactory kf = KeyFactory.getInstance("RSA");
    return kf.generatePublic(spec); //Error is thrown here
}

public static PublicKey StringToPublicKey(String array) throws NoSuchAlgorithmException, InvalidKeySpecException {
    byte[] b = Base64.encode(array.getBytes(), Base64.DEFAULT);
    return byteArrayToPublicKey(b);
}
}
这个错误只发生在android设备上,我能够将代码转换为字符串,并从字符串转换为公钥,在java中没有问题


我不知道如何在android设备上将字符串转换为公钥而不出错。帮助是非常适当的

你比较过Java和Android中的编码公钥吗?有区别吗?你比较过Java和Android中的编码公钥吗?有区别吗?