본문으로 건너뛰기

AES256 암호화

AES (Advanced Encryption Standard) 는 미국 표준 기술 연구소(NIST)에 의해 제정된 대칭키 암호화 방식입니다. Easypay는 보안 수준을 높이기 위해 256비트 키 길이를 사용하는 AES256-CBC 방식을 사용하여 가맹점의 중요 데이터를 안전하게 보호합니다.

🔐 암호화 규격 (Specification)

제공되는 KeyIV는 보안을 위해 Base64로 인코딩되어 있으므로, 사용 시 반드시 디코딩 절차를 거쳐야 합니다.

구분설정값비고
알고리즘AES대칭키 암호화 표준
운영 모드CBCCipher Block Chaining
키 길이256 bit32 Byte (디코딩 후 기준)
패딩 (Padding)PKCS7PaddingPKCS5Padding과 호환 가능
인코딩UTF-8문자열 처리 기준
출력 형식Base64암호화된 데이터를 전송하기 위한 포맷
IV (Base64)"a2ljY2Vhc3lwYXkyMDE4IQ==""kicceasypay2018!"의 Base64 값
Key (Base64)가맹점 Secret Key영업담당자에게서 발급받은 Base64 인코딩 키
주의사항
  • Secret KeyIV는 영업담당자에게 요청하시면 신속하게 제공받을 수 있습니다.
  • 제공받은 Secret KeyIV 문자열을 그대로 바이트로 변환하지 말고, 반드시 Base64 Decode를 수행한 뒤 암호화 엔진에 입력해야 합니다.

💻 언어별 구현 예제

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class AesUtil {
public static String encrypt(String plainText, String base64Key, String base64Iv) throws Exception {
// 1. Base64 인코딩된 Key와 IV를 디코딩하여 바이트 배열 획득
byte[] keyBytes = Base64.getDecoder().decode(base64Key);
byte[] ivBytes = Base64.getDecoder().decode(base64Iv);

SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);

// 2. AES/CBC/PKCS5Padding 설정 (Java 표준)
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);

byte[] encrypted = cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));

// 3. 최종 결과물 Base64 인코딩
return Base64.getEncoder().encodeToString(encrypted);
}
}