<%@page
language="java" contentType="text/html; charset=UTF-8"
import="org.json.simple.JSONObject, java.security.*,
ksign.jce.util.Base64,
ksign.jce.util.JCEUtil,
javak.crypto.*,
javak.crypto.spec.IvParameterSpec,
javak.crypto.spec.SecretKeySpec"
%>
<%
String plainText = request.getParameter("plainText");
String algorithm = request.getParameter("algorithm");
String round = request.getParameter("round");
String iv = "";
String key = "";
String output = "";
try {
JCEUtil.initProvider();
KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm, "Ksign");
if (algorithm.equalsIgnoreCase("SEED")) {
keyGenerator.init(128);
} else if(algorithm.equalsIgnoreCase("ARIA")) {
keyGenerator.init(128);
} else if(algorithm.equalsIgnoreCase("DES")) {
keyGenerator.init(56);
} else if(algorithm.equalsIgnoreCase("3DES")) {
keyGenerator.init(168);
} else if(algorithm.equalsIgnoreCase("DESede")) {
keyGenerator.init(168);
}
SecretKey _key = keyGenerator.generateKey();
SecureRandom secureRandom = new SecureRandom();
byte[] byteArray = new byte[16];
secureRandom.nextBytes(byteArray);
IvParameterSpec _iv = new IvParameterSpec(byteArray);
key = new String(Base64.encode(_key.getEncoded()));
iv = new String(Base64.encode(_iv.getIV()));
Cipher cipher = Cipher.getInstance(algorithm + "/" + "CBC" + "/" + "PKCS5Padding", "Ksign");
cipher.init(Cipher.ENCRYPT_MODE, _key, _iv);
byte[] encryptData = cipher.doFinal(plainText.getBytes("UTF-8"));
output = new String(Base64.encode(encryptData));
} catch (Exception e) {
output = e.toString();
}
JSONObject jsonObj = new JSONObject();
jsonObj.put("key", key);
jsonObj.put("iv", iv);
jsonObj.put("out", output);
//out.print(jsonObj.toString()); //소스코드 점검결과 조치 시작 19.12.02
%>
'IT' 카테고리의 다른 글
Developed data.jsp (0) | 2019.12.20 |
---|---|
Sign Server.jsp (0) | 2019.12.20 |
<IT> L4/L7 스위치의 대안, 오픈 소스 로드 밸런서 HAProxy (0) | 2019.12.19 |
비즈니스아키텍쳐(BA), 데이터아키텍쳐(DA), 어플리케이션아키텍쳐(AA), 테크닉컬아키텍쳐(TA) (0) | 2019.12.16 |
<IT_SQL> $ 쿼리 교체 ( 달러 case 문으로 교체 ) (0) | 2019.12.16 |
댓글