JAVA

KISA SEED 암호화 JAVA CBC모드 예제

daeyun대윤 2023. 4. 26. 20:39

KISA SEED 암호화 JAVA CBC모드 예제 입니다.

ECB 모드에 이어서 CBC모드 예제입니다. SEED 암호화는 6가지 운영모드가 있고, 공식 사이트에 언어별로 잘 정리가 되어 있습니다.

 

제가 작성한 것은 그 중 한가지 정도니 참고해주세요~

import java.util.Arrays;
import java.util.Base64;
import java.util.Base64.Encoder;

public class KISA_SEED_CBC_EXv1 {
	
	private static byte pbUserKey[] = "bananastrawberry".getBytes(); // 16
	private static byte bszIV[] = "0123456789abcdef".getBytes(); // 16
	private static byte Cipher[] = null;
	
	public static void main(String[] args) {
		byte[] password = encrypt("강아지");
		System.out.println("password : encrypt: " + new String(password));
		System.out.println("password : decrypt: " + decrypt(Cipher));
	}


	private static byte[] encrypt(String str) {
		byte[] userBytes = str.getBytes();
		byte[] pbData = new byte[32];
		
		for(int i=0; i<pbData.length; i++) {
			if(i < userBytes.length)
				pbData[i] = userBytes[i];
			else
				pbData[i] = 0x00;
		}
		
		//암호화 함수 호출
		Cipher = KISA_SEED_CBC.SEED_CBC_Encrypt(pbUserKey, bszIV, pbData ,0, pbData.length);
		
		Encoder encoder = Base64.getEncoder();
		byte[] enArray = encoder.encode(Arrays.copyOf(Cipher, 16));
		
		return enArray;
	}
	
	private static String decrypt(byte[] Cipher) {
		
		String result = "";
		//복호화 함수 호출
		byte Plain1[] = KISA_SEED_CBC.SEED_CBC_Decrypt(pbUserKey, bszIV, Cipher, 0, Cipher.length);
		result = new String(Plain1);
		
		return result;
	}

}

KISA SEED CBC 결과

결과는 이렇게 나옵니다! 도움이 되셨기를!

 

KISA SEED ECB 모드 예제는 여기 :

https://iamdaeyun.tistory.com/entry/KISA-SEED-%EC%95%94%ED%98%B8%ED%99%94-JAVA-ECB%EB%AA%A8%EB%93%9C-%EC%98%88%EC%A0%9C

 

KISA SEED 암호화 JAVA ECB모드 예제

KISA SEED 암호화를 적용 할 때, 운영모드가 6가지이고 적용 방식도 여러가지 방법이 있습니다. 그 중에서 제가 한 방식은 아래와 같습니다. 며칠동안 고생 했기 때문에... 블로그에 남겨 둡니다. 많

iamdaeyun.tistory.com

 

728x90
300x250