itsm_ysm/src/main/java/com/urpsys/basebatch/Aes256Test.java
2025-08-11 18:08:32 +09:00

123 lines
2.9 KiB
Java

package com.urpsys.basebatch;
import java.io.InputStream;
import java.security.InvalidKeyException;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
/**
* Hello world!
*
*/
public class Aes256Test
{
private static SecretKey keySpec; // keySpec
private static IvParameterSpec ivSpec; // ivSpec
public static void main( String[] args )
{
InputStream fis = null;
String secretKey = null;
System.out.println( "Hello World!" );
secretKey = "52f48aa1c7435bc11bf909d9d7d1d5932f4bacd8184ec5c1eed6d03ee17fe126";
args = new String[2];
args[0] ="enc";
args[1] ="kicintf12!";
if(args.length !=2 )
{
System.out.println("Invalid args , args length 2 input ");
System.exit(0);
}
try
{
byte[] secretKeyBytes = Hex.decodeHex(secretKey);
if (secretKeyBytes.length != 32)
{
System.out.println("Invalid key (key length is not valid) ");
System.exit(0);
}
byte[] ivBytes = new byte[16];
System.arraycopy(secretKeyBytes, 0, ivBytes, 0, 16);
keySpec = new SecretKeySpec(secretKeyBytes, "AES");
ivSpec = new IvParameterSpec(ivBytes);
if(args[0].equals("enc"))
{
System.out.println( "암호로 변경" );
if (args[1] == null)
{
System.out.println("변경할 문자열이 없습니다.");
}
String encryptedStr = null;
try
{
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] encrypted = cipher.doFinal(args[1].getBytes("UTF-8"));
encryptedStr = new String(Base64.encodeBase64(encrypted));
}
catch (Exception ex)
{
ex.printStackTrace();
}
System.out.println( "["+ args[1] +"] 암호화로 변경 =============>"+ encryptedStr);
}
else if(args[0].equals("dec"))
{
System.out.println( "평문으로 변경" );
if (args[1] == null)
{
System.out.println("변경할 문자열이 없습니다.");
}
String decryptedStr = null;
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
byte[] byteStr = Base64.decodeBase64(args[1].getBytes("UTF-8"));
decryptedStr = new String(cipher.doFinal(byteStr), "UTF-8");
}
catch (Exception ex)
{
ex.printStackTrace();
}
System.out.println( "["+ args[1] +"] 평문으로 변경 =============>"+ decryptedStr);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}