/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package kr.co.kihyun.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.URLDecoder; import java.net.URLEncoder; import sun.misc.*; /** * * @author Kts */ public class Base64 { public Base64() { } /** * Base64로 인코딩 하기 위해 Byte 배열로 변환 후 Base64Encoding 방식으로 바이트 배열을 아스키 문자열로 인코딩한다. * * @return String */ private static String getEnCodeBase64Str(String xmlfilename) { String encode = null; String tmpName = null; byte[] byteOrgin = null; try { tmpName = xmlfilename; byteOrgin = tmpName.getBytes(); encode = encodeBase64FromByte(byteOrgin); } catch (Exception e) { e.printStackTrace(); } return encode; } /** * Base64Encoding 방식으로 바이트 배열을 아스키 문자열로 인코딩한다. In-Binany, Out-Ascii * * @param encodeBytes * 인코딩할 바이트 배열(byte[]) * @return 인코딩된 아스키 문자열(String) */ public static String encodeBase64FromByte(byte[] encodeBytes) { byte[] buf = null; String strResult = null; BASE64Encoder base64Encoder = new BASE64Encoder(); ByteArrayInputStream bin = new ByteArrayInputStream(encodeBytes); ByteArrayOutputStream bout = new ByteArrayOutputStream(); try { base64Encoder.encodeBuffer(bin, bout); //44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 : Add by YOUNGJUN,CHO } catch (IOException ioex) { ioex.printStackTrace(); //++++++++++++++++++++++++++++++++++++++++++++++++ } catch (Exception e) { e.printStackTrace(); } buf = bout.toByteArray(); strResult = new String(buf).trim(); return strResult; } //46.메소드이름 생성규칙 위반 Update by YOUNGJUN,CHO //public static String Base64encoding(String str) { public static String base64encoding(String str) { //================================================ if(str == null || str.equals("")) { return ""; } else { try { BASE64Encoder en = new BASE64Encoder(); str = URLEncoder.encode(str, "UTF-8"); str = en.encode(str.getBytes()); //44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 : Add by YOUNGJUN,CHO } catch (IOException ioex) { ioex.printStackTrace(); //++++++++++++++++++++++++++++++++++++++++++++++++ } catch(Exception e) { e.printStackTrace(); } } return str; } /* * Base 64 한글 Decoding */ //46.메소드이름 생성규칙 위반 Update by YOUNGJUN,CHO //public static String Base64decoding(String str) { public static String base64decoding(String str) { //================================================ if(str == null || str.equals("")) { return ""; } else { try { BASE64Decoder de = new BASE64Decoder(); byte[] deStr = de.decodeBuffer(str); str = URLDecoder.decode(deStr.toString(), "UTF-8"); //44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 : Add by YOUNGJUN,CHO } catch (IOException ioex) { ioex.printStackTrace(); //++++++++++++++++++++++++++++++++++++++++++++++++ } catch(Exception e) { e.printStackTrace(); } } return str; } public static String encode(byte[] encodeBytes) { byte[] buf = null; String strResult = null; BASE64Encoder base64Encoder = new BASE64Encoder(); ByteArrayInputStream bin = new ByteArrayInputStream(encodeBytes); ByteArrayOutputStream bout = new ByteArrayOutputStream(); try { base64Encoder.encodeBuffer(bin, bout); //44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 : Add by YOUNGJUN,CHO } catch (IOException ioex) { ioex.printStackTrace(); //++++++++++++++++++++++++++++++++++++++++++++++++ } catch (Exception e) { System.out.println("Exception"); e.printStackTrace(); } buf = bout.toByteArray(); strResult = new String(buf).trim(); return strResult; } public static byte[] decode(String strDecode) { byte[] buf = null; BASE64Decoder base64Decoder = new BASE64Decoder(); ByteArrayInputStream bin = new ByteArrayInputStream(strDecode.getBytes()); ByteArrayOutputStream bout = new ByteArrayOutputStream(); try { base64Decoder.decodeBuffer(bin, bout); //44.적절하지 않은 예외처리(광범위예외클래스)_CWE-754 : Add by YOUNGJUN,CHO } catch (IOException ioex) { ioex.printStackTrace(); //++++++++++++++++++++++++++++++++++++++++++++++++ } catch (Exception e) { System.out.println("Exception"); e.printStackTrace(); } buf = bout.toByteArray(); return buf; } }