[java] 평문과 암호문

암호학에서 평문(plaintext)은 암호화되기 전의 원래의 메시지를 가리킵니다. 암호문(ciphertext)은 평문을 암호화하여 생성된 암호화된 메시지를 의미합니다.

자바에서 평문과 암호문을 다루는 방법은 java.security 패키지에서 제공하는 Cipher 클래스를 사용하는 것입니다. 아래는 평문을 AES 알고리즘을 사용하여 암호화하고 복호화하는 간단한 예제 코드입니다.

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.util.Base64;

public class CipherExample {
    public static void main(String[] args) throws Exception {
        String plainText = "Hello, World!";
        
        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(128);
        SecretKey secretKey = keyGen.generateKey();

        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        byte[] encryptedText = cipher.doFinal(plainText.getBytes());

        System.out.println("암호화된 메시지: " + Base64.getEncoder().encodeToString(encryptedText));

        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        byte[] decryptedText = cipher.doFinal(encryptedText);
        
        System.out.println("복호화된 메시지: " + new String(decryptedText));
    }
}

이 예제에서는 AES 알고리즘을 사용하여 평문을 암호화하고, 그것을 복호화하여 원래의 평문을 얻었습니다.

암호화와 관련된 주제에 대한 더 많은 정보는 Oracle Java Cryptography Architecture Guide를 참조하십시오.