/// ############################################################################# /// ##### /// ##### Çѱ¹½Å¿ëÁ¤º¸ÁÖ½Äȸ»ç ¼­ºñ½º ¿î¿µ¿¡ ÇÊ¿äÇÑ Utility Javascript ¼Ò½º /// ##### /// ##### ===================================================================== /// ##### /// ##### Descriptions /// ##### - ¼­ºñ½º ¿î¿µ¿¡ ÇÊ¿äÇÑ Utility ¼º°ÝÀÇ ÇÔ¼ö¸¦ °ü¸®ÇÑ´Ù. /// ##### /// ##### --------------------------------------------------------------------- /// ##### /// ##### ÀÛ¼ºÀÚ : (ÁÖ)À¯ºñ¾ÆÀÌ¿¡½ºÄÁ¼³ÆÃ (www.ubisc.com) /// ##### ¿øº»ÂüÁ¶ : /// ##### ¿øº»ÆÄÀÏ : /// ##### ÀÛ¼ºÀÏÀÚ : 2006.02.01 /// ##### /// ############################################################################# var CRNDSIZE = "24"; var strPersonalCertKey = "3"; // °³ÀÎÀÎÁõŰ ¼­ºñ½º ÇÁ·Î¼¼½º var strRealNameCertKey = "4"; // ½Ç¸íÀÎÁõŰ ¼­ºñ½º ÇÁ·Î¼¼½º var strDelimeter = "!#!"; // ¹Ýȯ Á¤º¸ Delimeter var strDataDelimeter = "!@!"; // ¹ÝȯµÈ µ¥ÀÌÅÍ Delimeter var strHttpURL_G = "http://secure.nuguya.com"; var strHttpsURL_G = "https://secure.nuguya.com"; var strSafeBlockExptUrl = strHttpsURL_G + "/nuguya/realname/rlnmSafeBlockExpt.do"; // SafeBlock ÀÓ½ÃÇØÁ¦ URL //var strValidExpireUrl = strHttpURL_G + "/nuguya/certkey/personalcertkey/RlnmValidExpire.do"; // °³ÀÎÀÎÁõŰ À¯È¿±â°£ Àç ¼³Á¤ var strCertKeyServiceUrl = strHttpsURL_G + "/nuguya/certkey/service.do"; // °³ÀÎÀÎÁõŰ / ½Ç¸íÀÎÁõŰ ¼­ºñ½º URL var strSendConfirmUrl = strHttpsURL_G + "/nuguya/certkey/personalcertkey/IpinSendConfirm.do"; // °³ÀÎÀÎÁõŰ Àü¼Û °ËÁõ URL var strNoticeUrl = strHttpsURL_G + "/nuguya/certkey/notice.do"; function checkUtilSelf() { return "Loaded"; } function encode( data ) { return encodeURIComponent( data ); } function decode( data ) { return decodeURIComponent( data ); } function trimPKCS5Padding( data ) { return data.replace( /[\1\2\3\4\5\6\7]/g, '\0' ); } // // Àü´ÞµÈ Á¤º¸¸¦ ¾ÏȣȭµÈ ¹®ÀÚ¿­·Î ¹ÝȯÇÑ´Ù. // function makeEncryptInfo( dataValues ) { var CRndValue = cryptoObject.getRandomKey( CRNDSIZE ); var CDESValue = ""; if ( dataValues.length == 0 ) { var err = new Error(); err.message = "makeEncryptInfo"; err.description = getCheckMessage( "S96" ); throw err; } var nIndex = 0; for( nIndex = 0; nIndex < dataValues.length - 1; nIndex++ ) { CDESValue += dataValues[nIndex] + strDelimeter; } CDESValue += dataValues[nIndex]; // ¿©±â±îÁöÁ¤»ó °ª ³Ñ¾î¿È..alert("´ÙÀ½Á¤º¸¸¦ Àü´ÞÇϰڽÀ´Ï´Ù.:"+CDESValue); CDESValue = cryptoObject.encode64( CRndValue + strDelimeter + cryptoObject.des( CRndValue, CDESValue, 1, 1, CRndValue ) ); return CDESValue; } // // Àü´ÞµÈ Á¤º¸¸¦ ¾ÏȣȭµÈ ¹®ÀÚ¿­·Î ¹ÝȯÇÑ´Ù. // function makeEncryptInfo2( dataValues, realkey ) { var CRndValue = cryptoObject.getRandomKey( CRNDSIZE ); var CDESValue = ""; if ( dataValues.length == 0 ) { var err = new Error(); err.message = "makeEncryptInfo"; err.description = getCheckMessage( "S96" ); throw err; } var nIndex = 0; for( nIndex = 0; nIndex < dataValues.length - 1; nIndex++ ) { CDESValue += dataValues[nIndex] + strDelimeter; } CDESValue += dataValues[nIndex]; CDESValue = cryptoObject.encode64( CRndValue + strDelimeter + cryptoObject.des( realkey, CDESValue, 1, 1, realkey ) ); return CDESValue; } // // °³ÀÎÀÎÁõŰ ÀÎÁõŰ °ËÁõ¿¡ ÇÊ¿äÇÑ Á¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeProcessInfo( dataObject ) { // Format : NiceId + PingInfo + OrderNo + TrCd + InqRsn + ReturnURL + ValidTerm + userNm + resIdNo + userId return makeEncryptInfo( new Array( dataObject.niceId, dataObject.pingInfo, dataObject.orderNo, dataObject.trCd, dataObject.inqRsn, dataObject.returnUrl, dataObject.validTerm, encode( dataObject.niceNm ), dataObject.resIdNo, encode(dataObject.userId), dataObject.SIKey ) ); } // // ȸ¿ø»ç ¼­¹ö¿¡ Àü¼ÛÇÒ ´ëüÀÎÁõ Á¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeCertKeyInfo( strNiceId, strPingInfo, strOrderNo, strInqRsn, strReturnUrl ) { // Format : NiceId + PingInfo + OrderNo + InqRsn + ReturnURL return makeEncryptInfo( new Array( strNiceId, strPingInfo, strOrderNo, strInqRsn, strReturnUrl, "##" ) ); } // // ȸ¿ø»ç ¼­¹ö¿¡ Àü¼ÛÇÒ ´ëüÀÎÁõ Á¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeCertKeyInfoPA( strNiceId, strPingInfo, strOrderNo, strInqRsn, strReturnUrl, strSIKey ) { // Format : NiceId + PingInfo + OrderNo + InqRsn + ReturnURL return makeEncryptInfo( new Array( strNiceId, strPingInfo, strOrderNo, strInqRsn, strReturnUrl, strSIKey ) ); } // // ȸ¿ø»ç ¼­¹ö¿¡ Àü¼ÛÇÒ ´ëüÀÎÁõ Á¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeCertKeyInfoPADup( strNiceId, strPingInfo, strOrderNo, strInqRsn, strReturnUrl, strSIKey, strUserCall, strJobInfo ) { // Format : NiceId + PingInfo + OrderNo + InqRsn + ReturnURL return makeEncryptInfo( new Array( strNiceId, strPingInfo, strOrderNo, strInqRsn, strReturnUrl, strSIKey, strUserCall ) ); } // // ȸ¿ø»ç¿¡ Àü´ÞÇÒ ´ëüÁ¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeCertKeyReturnInfo( dataObject ) { //alert("ȸ¿ø»ç¿¡ Àü´ÞÇÒ ´ëüÁ¤º¸¸¦ ¾ÏȣȭÇÕ´Ï´Ù"); // Format : NiceId + OrderNo + TrCd + RetCd + RetDtlCd + Message + PAKey + Name + BirtyYear + Sex + dupeInfo + LIKey + coInfo return makeEncryptInfo( new Array( dataObject.niceId, dataObject.orderNo, dataObject.trCd, dataObject.retCd, dataObject.retDtlCd, encode( dataObject.message ), dataObject.PAKey, encode( dataObject.niceNm ), dataObject.birthYear, dataObject.sex,dataObject.dupeInfo, dataObject.LIKey, dataObject.coInfo, dataObject.foreigner) ); } // // ȸ¿ø»ç¿¡ Àü´ÞÇÒ ´ëüÁ¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeIpinReturnInfo( dataObject ) { // Format : NiceId + OrderNo + TrCd + RetCd + RetDtlCd + Message + PAKey + Name + BirtyYear + Sex return makeEncryptInfo2( new Array( dataObject.niceId, dataObject.orderNo, dataObject.trCd, dataObject.retCd, dataObject.retDtlCd, encode( dataObject.message ), dataObject.PAKey, encode( dataObject.niceNm ), dataObject.birthYear, dataObject.sex,dataObject.LIKey, dataObject.ageGroup,dataObject.foreigner, dataObject.sendTime, dataObject.CIKey), dataObject.authKeyStr); } /*** * ÈÄ¼Ó - ȸ¿ø»ç¿¡ Àü´ÞÇÒ ´ëüÁ¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. ***/ function makeIpinReturnData( dataObject ) { // parameter : array(µ¥ÀÌÅÍ), str(ÈļÓkey) // array(µ¥ÀÌÅÍ) Format : NiceId + OrderNo + TrCd + RetCd + RetDtlCd + Message + PAKey + Name + BirtyYear + Sex + LIKey + ageGroup + foreigner + sendTime + validData return makeEncryptInfo2( new Array(dataObject.niceId, dataObject.orderNo, dataObject.trCd, dataObject.retCd, dataObject.retDtlCd, encode( dataObject.message ), dataObject.PAKey, encode( dataObject.niceNm ), dataObject.birthYear, dataObject.sex, dataObject.LIKey, dataObject.ageGroup, dataObject.foreigner, dataObject.sendTime, dataObject.CIKey, dataObject.validData) , dataObject.ipinKey ); } // // ȸ¿ø»ç ¼­¹ö¿¡ Àü¼ÛÇÒ Á¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeSendInfo( strNm, strNo, strRsn, strForeigner ) { // Format : Name + resIdNo + InqRsn + Foreigner return makeEncryptInfo( new Array( encode( strNm ), strNo, strRsn, strForeigner ) ); } // // ȸ¿ø»ç ¼­¹ö¿¡ Àü¼ÛÇÒ ±â¾÷ Á¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makeBizSendInfo( strNo, strNm, strRsn, strInfoFlag ) { // Format : BizNo + BizNm + InqRsn + InfoFlag return makeEncryptInfo( new Array( strNo, encode( strNm ), strRsn, strInfoFlag ) ); } // // ȸ¿ø»ç ¼­¹ö¿¡ Àü¼ÛÇÒ ±â¾÷ Á¤º¸¸¦ ¾ÏȣȭÇÏ¿© ¹ÝȯÇÑ´Ù. // function makAddBizSendInfo( strNo, strNm, strRsn, strInfoFlag, addGb, bizNm ) { // Format : BizNo + BizNm + InqRsn + InfoFlag return makeEncryptInfo( new Array( strNo, encode( strNm ), strRsn, strInfoFlag, addGb, encode( bizNm ) ) ); } // // ±â¾÷ ½Ç¸íÈ®ÀÎ »çÀ¯ÄÚµå ¼³Á¤ÇÔ¼ö // function setCoInqRsn( inqRsn ) { var optionText = "ȸ¿ø°¡ÀÔ"; var optionValue = "01"; var textArray = optionText.split( ";" ); var valueArray = optionValue.split( ";" ); var nIndex = 0; for( nIndex = 0; nIndex < valueArray.length; nIndex++ ) { var oOption = document.createElement( "OPTION" ); inqRsn.options.add( oOption ); oOption.innerText = textArray[nIndex]; oOption.value = valueArray[nIndex]; } } // // ½Ç¸íÈ®ÀÎ »çÀ¯ÄÚµå ¼³Á¤ÇÔ¼ö // function setInqRsn( inqRsn ) { var optionText = "ȸ¿ø°¡ÀÔ;±âÁ¸È¸¿ø È®ÀÎ;¼ºÀÎÀÎÁõ;ºñȸ¿ø È®ÀÎ;±âŸ »çÀ¯"; var optionValue = "10;20;30;40;90"; var textArray = optionText.split( ";" ); var valueArray = optionValue.split( ";" ); var nIndex = 0; for( nIndex = 0; nIndex < valueArray.length; nIndex++ ) { var oOption = document.createElement( "OPTION" ); inqRsn.options.add( oOption ); oOption.innerText = textArray[nIndex]; oOption.value = valueArray[nIndex]; } } // // ³»/¿Ü±¹ÀÎ ±¸ºÐ ÄÚµå ¼³Á¤ ÇÔ¼ö // function setForeigner( foreigner ) { var optionText = "³»±¹ÀÎ;¿Ü±¹ÀÎ"; var optionValue = "1;2"; var textArray = optionText.split( ";" ); var valueArray = optionValue.split( ";" ); var nIndex = 0; for( nIndex = 0; nIndex < valueArray.length; nIndex++ ) { var oOption = document.createElement( "OPTION" ); foreigner.options.add( oOption ); oOption.innerText = textArray[nIndex]; oOption.value = valueArray[nIndex]; } } // // Ŭ¶óÀÌ¾ðÆ® °Å·¡ÀϷùøÈ£ Æ÷¸Ë±âÁØ »ý¼º ÇÔ¼ö (YYYYMMDDHHMMSS+Random) // function getOrderNo( digits ) { if ( digits < 20 ) { alert( getMessage( "S11" ) ); return; } // ÀÏÀÚ ±âÁØ Á¤º¸¸¦ »ý¼ºÇÑ´Ù. var strOrderNo = new String( getYYYYMMDDHHMMSS() ); // ·£´ý۸¦ »ý¼ºÇÑ´Ù. strOrderNo = strOrderNo + cryptoObject.getRandomKey( digits - strOrderNo.length ); return strOrderNo; } // // ÇöÀç ÀÏÀÚ¿Í ½Ã°£À» 'YYYYMMDDHHMMSSsss' Çü½ÄÀ¸·Î ¹ÝȯÇÑ´Ù. // function getYYYYMMDDHHMMSSsss() { var today = new Date(); var strDateTime = (today.getFullYear() * 100 + today.getMonth() + 1) * 100; strDateTime = ( strDateTime + today.getDate() ) * 100; strDateTime = ( strDateTime + today.getHours() ) * 100; strDateTime = ( strDateTime + today.getMinutes() ) * 100; strDateTime = ( strDateTime + today.getSeconds() ) * 1000; strDateTime = strDateTime + today.getMilliseconds(); return strDateTime; } // // ÇöÀç ÀÏÀÚ¿Í ½Ã°£À» 'YYYYMMDDHHMMSS' Çü½ÄÀ¸·Î ¹ÝȯÇÑ´Ù. // function getYYYYMMDDHHMMSS() { var today = new Date(); var strDateTime = (today.getFullYear() * 100 + today.getMonth() + 1) * 100; strDateTime = ( strDateTime + today.getDate() ) * 100; strDateTime = ( strDateTime + today.getHours() ) * 100; strDateTime = ( strDateTime + today.getMinutes() ) * 100; strDateTime = strDateTime + today.getSeconds(); return strDateTime; } // // ÇöÀç ÀÏÀÚ¸¦ 'YYYYMMDD' Çü½ÄÀ¸·Î ¹ÝȯÇÑ´Ù. // function getYYYYMMDD() { var today = new Date(); var strDate = (today.getFullYear() * 100 + today.getMonth() + 1) * 100; strDate = strDate + today.getDate(); return strDate; } // // ÇöÀç ½Ã°¢À» 'HHMMSSsss' Çü½ÄÀ¸·Î ¹ÝȯÇÑ´Ù. // function getHHMMSSsss() { var today = new Date(); var strTime = today.getHours() * 100; strTime = ( strTime + today.getMinutes() ) * 100; strTime = ( strTime + today.getSeconds() ) * 1000; strTime = strTime + today.getMilliseconds(); return strTime; } // // ÇöÀç ½Ã°¢À» 'HHMMSS' Çü½ÄÀ¸·Î ¹ÝȯÇÑ´Ù. // function getHHMMSS() { var today = new Date(); var strTime = today.getHours() * 100; strTime = ( strTime + today.getMinutes() ) * 100; strTime = strTime + today.getSeconds(); return strTime; } // // ¹®ÀÚ ÀÔ·ÂÀ» °ËÁõÇÑ´Ù. // function checkString( srcString ) { var tmpChar; for( nIndex = 0; nIndex < srcString.length; nIndex++ ) { tmpChar = srcString.charAt( nIndex ); if ( ! ( (tmpChar < '0' || tmpChar > '9') && (tmpChar < 'a' || tmpChar > 'z') && (tmpChar < 'A' || tmpChar > 'Z') ) ) { return false; } } return true; } // // ¼ýÀÚ ÀÔ·ÂÀ» °ËÁõÇÑ´Ù. // function checkNumeric( srcNumeric ) { if ( srcNumeric.Number == NaN ) return false; // var tmpChar; // // for( nIndex = 0; nIndex < srcNumeric.length; nIndex++ ) // { // tmpChar = srcNumeric.charAt( nIndex ); // // if ( tmpChar < '0' || tmpChar > '9' ) { return false; } // } return true; } // // Áֹεî·Ï¹øÈ£ Çü½ÄÀ» °ËÁõÇÑ´Ù. // function checkResIdNo( srcNumeric ) { var sum = 0; if ( srcNumeric.length < 13 ) return false; for( nIndex = 0; nIndex < 8; nIndex++ ) { sum += srcNumeric.substring( nIndex, nIndex + 1 ) * ( nIndex + 2 ); } for( nIndex = 8; nIndex < 12; nIndex++ ) { sum += srcNumeric.substring( nIndex, nIndex + 1 ) * ( nIndex - 6 ); } sum = 11 - ( sum % 11 ); if ( sum >= 10 ) { sum -= 10; } if ( srcNumeric.substring( 12, 13 ) != sum || ( srcNumeric.substring( 6, 7 ) != 1 && srcNumeric.substring( 6, 7 ) != 2 ) ) { return false; } return true; } // // »ç¾÷ÀÚµî·Ï¹øÈ£ Çü½ÄÀ» °ËÁõÇÑ´Ù. // function checkBizNo( srcNumeric ) { var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1); var i, chkSum=0, c2, remander; for( i = 0; i <= 7; i++ ) chkSum += checkID[i] * srcNumeric.charAt(i); c2 = "0" + ( checkID[8] * srcNumeric.charAt(8) ); c2 = c2.substring( c2.length - 2, c2.length ); chkSum += Math.floor( c2.charAt(0) ) + Math.floor( c2.charAt(1) ); remander = (10 - (chkSum % 10)) % 10 ; if (Math.floor(srcNumeric.charAt(9)) == remander) return true; else return false; } // // ¿Ü±¹Àεî·Ï¹øÈ£¸¦ Çü½ÄÀ» °ËÁõÇÑ´Ù. // function checkForeignNo( srcNumeric ) { var ch = srcNumeric.substring( 11, 12 ); if ( ch != 7 && ch != 8 && ch != 9 ) return false; else return true; } // // ¿Ü±¹ÀÎ ¼º¸íÀ» °ËÁõÇÑ´Ù. // function checkForeignNm( srcNm ) { var chr = srcNm.split( "\\" ); var strChar = chr[chr.length - 1]; // °ø¹é °ËÁõ if ( (/[\s]/).test( strChar ) ) { return false; } for( nIndex = 0; nIndex < strChar.length; nIndex++ ) { chr = strChar.substr( nIndex, 1 ); if ( chr >= 'a' && chr <= 'z' ) return false; } return true; } function getRandomKey( digits ) { var rndKey, nIndex; rndKey = ""; do { nIndex = Math.floor( Math.random() * cryptoObject.KeyStr.length ) + 1; rndKey = rndKey + cryptoObject.KeyStr.substr( nIndex, 1 ); } while ( rndKey.length < digits ) return rndKey; } function endProcess() { window.close(); opener.focus(); } function goReturnPage() { var form = document.getElementById( "resForm" ); if(oivsObject.identifydata != ""){ //alert("1"); form.IDENTIFYDATA.value = oivsObject.identifydata ; form.RETURNURL.value = oivsObject.pareturnUrl; }else{ // alert("2"); //alert(form.SendInfo.value); form.SendInfo.value = oivsObject.clientData; if(form.SendData!=null) { form.SendData.value = oivsObject.ipinData; } } form.action = oivsObject.returnUrl; form.submit(); } function goSafeBlockExpt() { var popupWindow = window.open("", "popupSafeBlockExpt", "top=100, left=200, status=1, width=417, height=352" ); popupWindow.document.location=strSafeBlockExptUrl; popupWindow.focus(); return; } function goSafeBlockExptSelf() { window.resizeTo( 425, 380 ); document.location = strSafeBlockExptUrl; return; } function goSubmitUrl( encData, formObject, targetUrl ) { formObject.SendInfo.value = encData; formObject.action = targetUrl; formObject.submit(); }