0
java의 XML 파일에서 공개 키를 변환하는 데 문제가 있습니다. 몇 가지 조사가 끝나면 X509 인코딩이 가장 많이 사용되는 형식 인 것처럼 보입니다.xml에서 공개 키 객체를 만들 수 없습니다.
<RSAKeyValue>
<Modulus>hkjhvgkjewrlhfelwrkjvhwerkjlrkwjvbrvkjrbvkwjlvbwekvjbekvbwkbrkvbwrwebrvvbrlkvbklvrbkvlreb</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
(이 내 실제 키 값이 아닙니다) 여기
내가 뭘하려하는 코드 샘플입니다 :
File fXmlFile = new File(".....\\...\\...\\file.xml"); //Path to xml file
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Modulus");
Node n = nList.item(0);
byte[] encKey = Base64.getEncoder().encode(n.getTextContent().getBytes());
X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(encKey);
KeyFactory keyFactory = KeyFactory.getInstance("DSA", "SUN");
PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);
이
나는 이런 걸 보이는 xml 파일이
마지막 줄에서 다음과 같은 예외가 발생합니다.
java.security.spec.InvalidKeySpecException: Inappropriate key specification: invalid key format
at sun.security.provider.DSAKeyFactory.engineGeneratePublic(DSAKeyFactory.java:119)
at java.security.KeyFactory.generatePublic(KeyFactory.java:328)
at XmlReader.main(XmlReader.java:41)
키 형식과 관련된 문제가 확실하지 않습니다. 입력이 문자열로 변환되어 키에 대한 중요한 데이터가 손실되는 문제가있을 수 있습니까?