<IT> Block Cipher Encrypt.jsp
<%@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
%>