【发布时间】:2018-02-23 00:21:32
【问题描述】:
当我尝试从字符串生成 RSA 公钥时。我得到下面提到的异常。我正在尝试在 Android 中验证生成的密钥(字符串,使用 Swift)。如何将字符串转换为私钥/公钥?
static PublicKey getRSAPublicKeyFromString (String publicKeyPEM){
try {
KeyFactory keyFactory = KeyFactory.getInstance("RSA", "SC");
byte[] publicKeyBytes = Base64.decode(publicKeyPEM.getBytes("UTF-8"), Base64.DEFAULT);
X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(publicKeyBytes);
return keyFactory.generatePublic(x509KeySpec);
}catch (Exception e){
e.printStackTrace ();
}
return null;
}
例外
java.security.spec.InvalidKeySpecException: encoded key spec not recognised
at org.spongycastle.jcajce.provider.asymmetric.util.BaseKeyFactorySpi.engineGeneratePublic(BaseKeyFactorySpi.java:52)
at org.spongycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi.engineGeneratePublic(KeyFactorySpi.java:130)
at java.security.KeyFactory.generatePublic(KeyFactory.java:172)
ios 中的公钥:
MIGJAoGBAOibWF15OhLJQAWpQN++UFqyG+2uLEG8PPvCajwwh6FWi6jLiZ9VN+l3JpiJTQwF/yxlSJCZCoYnljKeRBnNxpzBnuTJsyuZ4hI8ehLzDvh9nYzX/TlcZYVshJzyIVRZAbuFOCLNIltjB+Qmw8YGlxzeDSFaB6eEC1OP49hDakURAgMBAAE=
【问题讨论】:
标签: android rsa spongycastle