% //************************************************************************ // // // 본 샘플소스는 개발 및 테스트를 위한 목적으로 만들어졌으며, // // // // 실제 서비스에 그대로 사용하는 것을 금합니다. // // // //************************************************************************ %> <% response.setHeader("Pragma", "no-cache" ); response.setDateHeader("Expires", 0); response.setHeader("Pragma", "no-store"); response.setHeader("Cache-Control", "no-cache" ); %> <%@ page contentType="text/html; charset=utf-8"%> <%@ page import = "java.util.*" %> <%@ page import = "java.util.regex.*" %> <%@ page import = "java.text.*" %> <% //tr_cert 데이터 변수 선언 --------------------------------------------------------------- String tr_cert = ""; String cpId = request.getParameter("cpId"); // 회원사ID String urlCode = request.getParameter("urlCode"); // URL코드 String certNum = request.getParameter("certNum"); // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) ) String date = request.getParameter("date"); // 요청일시 String certMet = request.getParameter("certMet"); // 본인인증방법 String name = request.getParameter("name"); // 성명 String phoneNo = request.getParameter("phoneNo"); // 휴대폰번호 String phoneCorp = request.getParameter("phoneCorp"); // 이동통신사 if(phoneCorp == null) phoneCorp = ""; String birthDay = request.getParameter("birthDay"); // 생년월일 String gender = request.getParameter("gender"); // 성별 if(gender == null) gender = ""; String nation = request.getParameter("nation"); // 내외국인 구분 String plusInfo = request.getParameter("plusInfo"); // 추가DATA정보 String extendVar = "0000000000000000"; // 확장변수 //End-tr_cert 데이터 변수 선언 --------------------------------------------------------------- String tr_url = request.getParameter("tr_url"); // 본인인증서비스 결과수신 POPUP URL String tr_add = request.getParameter("tr_add"); // IFrame사용여부 %> <%! // 파라미터 유효성 검증 -------------------------------------------- boolean b = true; String regex = ""; String regex1 = ""; public Boolean paramChk(String patn, String param){ Pattern pattern = Pattern.compile(patn); Matcher matcher = pattern.matcher(param); b = matcher.matches(); return b; } %> <% regex = "[A-Z]*"; regex1 = "[0-9]*"; if( cpId.length() == 8 ){ String engcpId = cpId.substring(0,4); String numcpId = cpId.substring(4,8); if( !paramChk(regex, engcpId) || !paramChk(regex1, numcpId) ){ out.println(""); } } else { out.println(""); } regex = "[0-9]*"; if( urlCode.length() != 6 || !paramChk(regex, urlCode) ){ out.println(""); } if( certNum.length() == 0 || certNum.length() > 40){ out.println(""); } regex = "[0-9]*"; if( date.length() != 14 || !paramChk(regex, date) ){ out.println(""); } regex = "[A-Z]*"; if( certMet.length() != 1 || !paramChk(regex, certMet) ){ out.println(""); } regex = "[0-9]*"; if( phoneNo.length() != 0 ){ if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){ out.println(""); } } regex = "[A-Z]*"; if( phoneCorp.length() != 0 ){ if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){ out.println(""); } } regex = "[0-9]*"; if( birthDay.length() != 0 ){ if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){ out.println(""); } } regex = "[0-9]*"; if( gender.length() != 0 ){ if( gender.length() != 1 || !paramChk(regex, gender) ){ out.println(""); } } regex = "[0-9]*"; if( nation.length() != 0 ){ if( nation.length() != 1 || !paramChk(regex, nation) ){ out.println(""); } } regex = "[\\sA-Za-z가-�R.,-]*"; if( name.length() != 0 ){ if( name.length() > 60 || !paramChk(regex, name) ){ out.println(""); } } if( tr_url.length() == 0 ){ out.println(""); } regex = "[A-Z]*"; if( tr_add.length() != 0 ){ if( tr_add.length() != 1 || !paramChk(regex, tr_add) ){ out.println(""); } } // END 파라미터 유효성 검증 -------------------------------------------- //01. 한국모바일인증(주) 암호화 모듈 선언 com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); //02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화) String enc_tr_cert = ""; tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar; enc_tr_cert = seed.getEnc(tr_cert, ""); //03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC) String hmacMsg = ""; hmacMsg = seed.getMsg(enc_tr_cert); //04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 후 암호화) tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, ""); %>
| 회원사ID | <%=cpId%> |
| URL코드 | <%=urlCode%> |
| 요청번호 | <%=certNum%> |
| 요청일시 | <%=date%> |
| 본인인증방법 | <%=certMet%> |
| 이용자성명 | <%=name%> |
| 휴대폰번호 | <%=phoneNo%> |
| 이동통신사 | <%=phoneCorp%> |
| 생년월일 | <%=birthDay%> |
| 이용자성별 | <%=gender%> |
| 내외국인 | <%=nation%> |
| 추가DATA정보 | <%=plusInfo%> |
|   |   |
| 요청정보(암호화) | <%=tr_cert.substring(0,50)%>... |
| 결과수신URL | <%=tr_url%> |
| IFrame사용여부 | <%=tr_add%> |