목차

KISA SEED CBC 가이드

이 화면은 KISA의 SEED CBC 암호화 테스트를 위한 화면이다.

참고소스 https://github.com/predict-woo/kisa-seed을 활용하세요.

예시

템플릿 위치: /HTML5/OSS/kisa-seed_cbc_test

템플릿 파일

화면 스크립트

/**
이 화면은 kisa의 seed cbc 암호화를 테스트하기 위해서 만든화면입니다.
참고소스 : https://github.com/predict-woo/kisa-seed (nodejs용 임)
@example

const enc = KISA_SEED_CBC.encrypt(
	"gONPjwgQcPHp85Q3CtQFiQ==",
	"II1mpzCoGoFvutn6NhAlAQ==",
	"Hello World"
);

const dec = KISA_SEED_CBC.decrypt(
	"gONPjwgQcPHp85Q3CtQFiQ==",
	"II1mpzCoGoFvutn6NhAlAQ==",
	enc
);

console.log(dec);

내부 내장 함수들
function stringToUint8Array(str: string): Uint8Array {
	const encoder = new TextEncoder(); // TextEncoder encodes into UTF-8 by default
	const uint8Array = encoder.encode(str);
	return uint8Array;
}

function uint8ArrayToString(uint8Array: Uint8Array): string {
	const decoder = new TextDecoder("utf-8");
	return decoder.decode(uint8Array);
}

function base64ToUint8Array(base64: string): Uint8Array {
	return new Uint8Array(Buffer.from(base64, "base64"));
}

const pbUserKey = base64ToUint8Array("gONPjwgQcPHp85Q3CtQFiQ==");
const bszIV = base64ToUint8Array("II1mpzCoGoFvutn6NhAlAQ==");
const encStr = stringToUint8Array("Hello World");

const enc = KISA_SEED_CBC.SEED_CBC_Encrypt(
	pbUserKey,
	bszIV,
	encStr,
	0,
	encStr.length
);

const dec = KISA_SEED_CBC.SEED_CBC_Decrypt(
	pbUserKey,
	bszIV,
	enc,
	0,
	enc.length
);

console.log(uint8ArrayToString(dec));
*/

function btnLoadLib_on_mouseup(objInst)
{
	// SEED CBC 라이브러리 로드 (프로젝트 환경에 따라 경로를 달라질 수 있음)
	// 템플릿이 저장된 디렉토리의 jquery-barcode.min.js 파일을 활용하세요.
	screen.loadjs("./ext/lib/kisa-seed-cbc.js");
}

// "암호화" 버튼 이벤트
function btnEnc_on_mouseup(objInst)
{
	this.mlEncData.value = KISA_SEED_CBC.encrypt(this.fld_userkey.value, this.fld_iv.value, this.mlData1.value);
}

// "복호화" 버튼 이벤트
function btnDec_on_click(objInst)
{
	this.mlDecData.value = KISA_SEED_CBC.decrypt(this.fld_userkey.value, this.fld_iv.value, this.mlData2.value);
}

function screen_on_load()
{
	var SEED_CBC_USER_KEY = "gONPjwgQcPHp85Q3CtQFiQ==";
	var SEED_CBC_IV = "II1mpzCoGoFvutn6NhAlAQ==";

	this.fld_userkey.value = SEED_CBC_USER_KEY;
	this.fld_iv.value = SEED_CBC_IV;
}