====== KISA SEED CBC 가이드 ======
이 화면은 KISA의 SEED CBC 암호화 테스트를 위한 화면이다.
참고소스 https://github.com/predict-woo/kisa-seed을 활용하세요.
===== 예시 =====
템플릿 위치: /HTML5/OSS/kisa-seed_cbc_test
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/OSS/kisa_seed_cbc.xml|kisa_seed_cbc.xml]]
* [[xf5projecthome>template/screen/HTML5/OSS/kisa_seed_cbc.js|kisa_seed_cbc.js]]
* [[xf5projecthome>template/screen/HTML5/OSS/LICENSE.txt|LICENSE.txt]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/OSS/kisa_seed_cbc|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
/**
이 화면은 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;
}