투케이2K

103. (spring/스프링) [유틸 파일] base64 및 url [인코딩] 된 데이터를 >> base64 및 url [디코딩] 수행 >> [원본] 문자열 확인 실시 본문

Spring

103. (spring/스프링) [유틸 파일] base64 및 url [인코딩] 된 데이터를 >> base64 및 url [디코딩] 수행 >> [원본] 문자열 확인 실시

투케이2K 2022. 10. 5. 21:01

[개발 환경 설정]

개발 툴 : inteli j

개발 언어 : spring

 

[소스 코드]

    // TODO [url 인코딩 + base64 로 된 문자열 > Url 디코딩 > base64 디코딩 >원본 string 반환 실시]
    public static String stringToUrlAndBase64DecodeString (String inputData) {

        /**
         * // -----------------------------------------
         * [stringToUrlAndBase64DecodeString 메소드 설명]
         * // -----------------------------------------
         * 1. url 인코딩 + base64 로 된 문자열 > Url 디코딩 > base64 디코딩 >원본 string 반환 실시
         * // -----------------------------------------
         * 2. 호출 방식 :
         * C_Util.stringToUrlAndBase64DecodeString("7JWI64WVQCNoZWxsbw%3D%3D");
         * // -----------------------------------------
         * 3. 리턴 데이터 :
         * 안녕@#hello
         * // -----------------------------------------
         * */

        // [리턴 데이터 선언 실시]
        String base64String = "";
        String returnData = "";


        // [로직 처리 수행 실시]
        try {

            // [사전 인풋 데이터 널 체크 실시]
            if (inputData != null
                    && inputData.length()>0
                    && inputData.trim().equals("") == false
                    && inputData.trim().equals("null") == false
                    && inputData.trim().equals("undefined") == false){ // [널이 아닌 경우]

                if (inputData.contains("%") == true){ // [URL 인코딩 된 base64 문자열 인 경우]
                    base64String = URLDecoder.decode(inputData,  "UTF-8");
                }
                else { // [base64 문자열로만 구성된 경우]
                    base64String = inputData;
                }
                // [base64 디코딩 수행 실시]
                byte textBytes[] = Base64.decodeBase64(base64String);

                // [리턴 변수에 삽입]
                returnData = new String(textBytes, "UTF-8");
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }


        // [로그 출력]
        ///*
        System.out.println("\n");
        System.out.println("================================================");
        System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
        System.out.println("[METHOD] : "+String.valueOf("stringToUrlAndBase64DecodeString"));
        System.out.println("[INPUT] : "+String.valueOf(inputData));
        System.out.println("[FORMAT] : [BASE64] : "+String.valueOf(base64String));
        System.out.println("[RETURN] : [STRING] : "+String.valueOf(returnData));
        System.out.println("================================================");
        System.out.println("\n");
        // */


        // [리턴 데이터 반환 실시]
        return returnData;
    }

 

반응형
Comments