키 쌍을 생성하는 코드를 작성했지만 저장하고 다시 사용할 수있는 방법이 있는지 궁금합니다. 여기 자바 비대칭 암호화에서 키 쌍을 저장하고 다시 사용하는 방법은 무엇입니까?
는 쌍 generaes 코드이다공공 정적 무효 메인 (문자열 []를 인수) {예외
String plainText = "Hello world";
Map<String, Object> keys = getRSAKeys();
PrivateKey privateKey = (PrivateKey) keys.get("private");
PublicKey publicKey = (PublicKey) keys.get("public");
System.out.println(privateKey.getEncoded());
System.out.println(publicKey.getEncoded());
String encrypted = encryptMessage(plainText, privateKey);
System.out.println(encrypted);
String decrypted = decryptMessage(plainText, publicKey, encrypted);
System.out.println(decrypted);
}
private static Map<String, Object> getRSAKeys() throws Exception {
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
Map<String, Object> keys = new HashMap<String, Object>();
keys.put("private", privateKey);
keys.put("public", publicKey);
return keys;
}
물론 :
또한 여기 당신이 원하는 것을 정확히 할 몇 가지 예제 코드입니다. 어떻게 든 데이터를 유지하십시오. 프로그램의 수명 내에서 참조를 유지하십시오. 프로그램의 수명 외에도 - 직렬화가 가능하므로 직렬화 할 수 있습니다. (물론 직렬화 된 키를 안전하게 유지하는 것에 대해 걱정해야합니다 ...) –
다음과 같이 왜 'KeyPair'객체를 반환 할 수 있는지 Map에 넣어야합니까? –
감사합니다. Andy, 어떻게 그렇게 할 것입니까? – TheRealJoeWilson