File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.uat.uia.web;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Random;
import org.apache.commons.lang3.StringUtils;
import com.icert.comm.secu.IcertSecuManager;
import itn.let.uat.uia.service.AuthCertVO;
import itn.let.uss.umt.service.MberManageVO;
public class KmcCertChecker {
//회원가입 시 인증수단을 휴대폰 본인인증만 했을 경우 사용
public AuthCertVO authCertCheck(String trUrl) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001003"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005001";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = "0"; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = ""; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//회원가입 시 인증수단을 ARS, 휴대폰 본인인증 했을 경우 사용
public AuthCertVO authCertCheckTwo(String trUrl, String mberNm, String moblphonNo, String sexdstnCode, String nationality, String birth) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001003"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "004001";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = moblphonNo; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = birth; // 생년월일
String gender = sexdstnCode; // 성별
if(gender == null) gender = "";
String nation = nationality; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = ""; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//아이디 패스워드 찾기 본인인증
public AuthCertVO authCertCheckThree(String trUrl, MberManageVO mberManageVO) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = mberManageVO.getAuthRUrlCode(); // URL 인증 코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005002";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberManageVO.getMberNm(); // 성명
String phoneNo = mberManageVO.getMoblphonNo(); // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = "0"; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = mberManageVO.getMberId(); // 추가DATA정보
if(StringUtils.isNotEmpty(mberManageVO.getPassword()))
{
plusInfo = plusInfo + ",,," + mberManageVO.getPassword();
}
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//IP 체크해주기
public AuthCertVO authCertCheckFour(String trUrl, String mberNm, String moblphonNo, String sexdstnCode, String nationality, String birth, String id) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001006"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005003";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = moblphonNo; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = birth; // 생년월일
String gender = sexdstnCode; // 성별
if(gender == null) gender = "";
String nation = nationality; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//마이페이지 휴대폰 변경 기능 본인인증에 사용
public AuthCertVO authCertCheckFive(String trUrl, String id) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001009"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005005";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
// 마이페이지 발신번호 관리 > 발신번호 등록 시 사용
public AuthCertVO authCertCheckSix(String trUrl, String id, String moblphonNo, String mberNm, String myNameFlag) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001007"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "006005";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = moblphonNo; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id + "§" + myNameFlag; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//마이패이지 회원탈퇴 > 본인인증으로 회원탈퇴에 사용
public AuthCertVO authCertCheckSeven(String trUrl, String mberNm) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001010"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005006";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = ""; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//아이디 패스워드 찾기 본인인증
public AuthCertVO authCertCheckEight(String trUrl, String idParam) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001012"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005008";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = "0"; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = idParam; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
// 마이페이지 보안인증
public AuthCertVO authCertCheckNine(String trUrl, String id) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001014"; // URL코드
//kmc 본인인증 실/개발 서버 구분
if(trUrl.contains("192.168.0.60") || trUrl.contains("localhost")) {
urlCode = "010001";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (예-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증(주) 암호화 모듈 선언
IcertSecuManager seed = new 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, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
}