AES(Advanced Encryption Standard) 암호화암호화와 복호화 과정에서 동일한 키를 사용하는 대칭키 알고리즘이다.대입 치환 SPN(substitution-Permutation Network)을 사용하는 블록암호 방식이다. 키 값의 길이에 따라 AES128, AES192, AES256으로 나뉜다.128bit의 고정된 블록 단위로 암호화를 수행한다. (Block Cipher Mode - EBC, CBC 등) 주의JDK 8 이상의 환경에서는 Java 자체적으로 AES-256을 지원하지만, 일부 구버전에서는 제한이 있을 수 있습니다.Key 길이가 정확히 32바이트(256비트)여야 합니다. 자바(Java)에서 양방향 암호화 방식인 AES-256를 지원하는 기본 유틸리티 클래스 예제입니다.아래는..
문제https://yourdomain.com/api?ciphertext=3+2BL9mHNCNRUdUM6wdBoSFQ==AES 암호화 값에 +, / 등 특수문자가 포함된 base64 문자열을 전달 시 서버에서 복호화할 때 아래와 같이 에러가 발생됨Exception in thread "main" java.lang.IllegalArgumentException: Illegal base64 character 20at java.base/java.util.Base64$Decoder.decode0(Base64.java:746)at java.base/java.util.Base64$Decoder.decode(Base64.java:538) 원인특수 문자가(+ , /) 포함된 Base64 문자열이 변환되어 분리되므로 + →..
// 0으로 시작하지 않은 정수 2, 소숫점 2const regex = /^([1-9]{1}\d{0,1}|0{1})(\.{1}\d{0,2})?$/;// 0으로 시작하지 않은 정수 3, 소숫점 2const regex = /^([1-9]{1}\d{0,2}|0{1})(\.{1}\d{0,2})?$/; 분석정수부는 1~2자리 숫자 (01, 23 등) 또는 0만 허용^ : 문자열 시작[] : 문자 클래스로 괄호 안에 있는 문자 중 하나를 의미.([1-9] : 1-9까지 숫자 중 하나이고 1-9 숫자로 시작해야 하며 0은 안됨.{1} : 반드시 한자리만 있어야 함([1-9]{1}\d{0,1}) : 0을 제외한 1~99 범위의 정수만 허용한다.|0{1} : 또는 정확히 0 하나 소수부는 선택이며, 최대 2자리까지 허..
HTTP 요청 파라미터는 기본적으로 모두 String으로 전달되며,Spring이 자동으로 타입 변환(컨버전)해줍니다.반드시 int로만 받아야 할 특별한 상황이 아니라면,String으로 받고, 필요시 int 파싱 및 유효성 검사를 직접 해주는 것이 오류 없는 설계입니다. JSconst bbsNo = "23456"; // 숫자를 문자열 형태로const encoded = btoa(bbsNo); // Base64 인코딩: "MjM0NTY="location.href = "/search.do?bbsNo=" + encodeURIComponent(encoded);// 요청 URL: /search.do?bbsNo=MjM0NTY%3Dbtoa (binary-to-ascII)J..
저장소에 있는 Commit 이력을 조회할 경우 git log 명령을 사용합니다. 특정 브랜치(develop)의 2주 동안 커밋된 주석과 그 커밋에서 변경된 파일 목록을 출력git log develop --since="2 weeks ago" --pretty=format:"%n Commit: %h|%cn|%cd|%n Nessages: %s%n File Changed: " --date=short --name-only | sort develop : 조회할 브랜치 이름 --since="2 weeks ago" : 최근 2주간의 커밋만 필터링 --pretty=format:"%h | %cn | %cd | %s" : 커밋 해시(%h), 커밋 최종 등록자 (%cn), 커밋 날짜 시간(%cd), 커밋 메시지(%s) ..
환경STS 3.2.5jakarta.servlet-api 4.0.4Apache Tomcat 9.xJDK 17JSP 오류Failed to complete request: java.lang.IllegalArgumentException: Unknown return value type: java.lang.Integer 원인JSP 화면에서 ajax로 호출한 URL에서 int 타입으로 return을 하는 과정에서 에러가 발생 해결@ResponseBody 추가하여 오류 해결ResponseBody http응답값을 자바 객체로 변환시켜 객체에 저장한다.[ EmpController.java ]@PostMapping("/selectEmp")@ResponseBodypublic int selectEmp(@RequestBody ..
Firebase Cloud Messaging(FCM) HTTPS v1 서비스를 Java에서 사용하려면 Firebase Admin SDK 방식과 REST 방식 중 하나를 선택하여 build.gradle이나 pom.xml에 Firebase Admin SDK , Google OAuth 라이브러리를 추가하면 됩니다. 성능상의 차이는 없으며 서비스 구현에 맞게 선택하면 됩니다. Firebase Admin SDK 방식과 REST 방식 두 가지특징Firebase Admin SDKGoogle OAuth REST 방식라이브러리 firebase-admin google-auth-library-oauth2-http레벨고수준 API저수준 API설정 및 초기화간단 (FirebaseOptions로 초기화)별도의 HTTP 요청 작..