-
RSA in JAVA , rsa256 key 생성WEB/BACK 2024. 7. 3. 10:41반응형
java에서 rsa 키 생성하는 방법
여기서는 파일로 생성하는거 말고 자바에서 바로 생성하는 예시
KeyPairGenerator from java.security package:을 사용하고
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA"); generator.initialize(2048); KeyPair pair = generator.generateKeyPair();
2048을 사용해서 rsa256 키 페어를 생성한다.
생성한 키는 파일로 따로 저장해준다.
PrivateKey privateKey = pair.getPrivate(); PublicKey publicKey = pair.getPublic(); try (FileOutputStream fos = new FileOutputStream("public.key")) { fos.write(publicKey.getEncoded()); } File publicKeyFile = new File("public.key"); byte[] publicKeyBytes = Files.readAllBytes(publicKeyFile.toPath()); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyBytes); keyFactory.generatePublic(publicKeySpec); String secretMessage = "Baeldung secret message"; Cipher encryptCipher = Cipher.getInstance("RSA"); encryptCipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] secretMessageBytes = secretMessage.getBytes(StandardCharsets.UTF_8);) byte[] encryptedMessageBytes = encryptCipher.doFinal(secretMessageBytes); String encodedMessage = Base64.getEncoder().encodeToString(encryptedMessageBytes); Cipher decryptCipher = Cipher.getInstance("RSA"); decryptCipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] decryptedMessageBytes = decryptCipher.doFinal(encryptedMessageBytes); String decryptedMessage = new String(decryptedMessageBytes, StandardCharsets.UTF_8); assertEquals(secretMessage, decryptedMessage);
반응형'WEB > BACK' 카테고리의 다른 글
spring cloud config (server,client,watcher) 구현하기 2 - client server (0) 2024.07.24 spring cloud config (server,client,watcher,java) 구현하기 1 (0) 2024.07.24 springboot2.7 + JWT + RSA256(openssl) (1) 2024.07.03 springboot2.7 ver 최상단 디렉토리 변경 (0) 2024.06.25 spring security error - io.jsonwebtoken.io.JacksonSerializer (0) 2024.06.18