====== 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; }