2012-07-26 26 views
6

Tôi có yêu cầu đọc khóa công khai bằng cách sử dụng java và phân tích cú pháp đó, để kiểm tra tính hợp lệ, số mũ, mô đun của nó hoặc có hợp lệ hay không. Tôi đã thử các mã dưới đây, và có vấn đề. Bạn có thể vui lòng giúp tôi tìm giải pháp cho vấn đề này không?phân tích cú pháp và đọc khóa công khai trong java

public static void getPublicKey(String key) throws Exception { 

key = key.replaceAll("-----BEGIN SSH2 PUBLIC KEY-----", ""); 
key = key.replaceAll("-----END SSH2 PUBLIC KEY-----", ""); 
KeyFactory kFactory = KeyFactory.getInstance("RSA", new BouncyCastleProvider()); 
byte pub_llave[] = new BASE64Decoder().decodeBuffer(key) ; 
X509EncodedKeySpec spec = new X509EncodedKeySpec(pub_llave); 
PublicKey pubkey = (PublicKey) kFactory.generatePublic(spec); 
} 

Và đây là những ngoại lệ:

java.lang.IllegalArgumentException: unknown object in getInstance: org.bouncycastle.asn1.DERApplicationSpecific 
    at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source) 
    at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source) 
    at org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance(Unknown Source) 
+0

bạn đang gặp phải sự cố gì? bất kỳ lỗi nào? – Tomer

+0

@ ftom2 - Có. Dưới đây là những dấu vết ngoại lệ - java.lang.IllegalArgumentException: đối tượng chưa được biết trong getInstance: org.bouncycastle.asn1.DERApplicationSpecific \t tại org.bouncycastle.asn1.ASN1Sequence.getInstance (Unknown Source) \t tại org.bouncycastle.asn1.ASN1Sequence .getInstance (Nguồn không rõ) \t tại org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance (Nguồn không xác định) – Sirish

+0

Vui lòng không đăng mã trong nhận xét, chỉ cần chỉnh sửa câu hỏi của bạn và thêm câu hỏi đó. – Tomer

Trả lời

Các vấn đề liên quan