Tech/Java10 자바 암호화 패키지(JCA,JCE)란? 들어가며 [Java] java.security.InvalidKeyException: Illegal key size or default parameters : Model has no value for key 에러 해결들어가며AES 256 암복호화 코드를 구현하고 이를 사용하는 도중에 에러가 발생했다. 처음에는 구현한 코드의 문제라고 생각을 했는데, 구글리을 해보니 자바의 문제였다. 이는 보통 자바에서 대ssonzm.tistory.com자바 JCE 관련 에러를 해결하면서 JCE 정책에 대해 자세하게 알아보고 싶었다.일단 간단하게 찾아보니까 자바 암호화 패키지에 두 종류가 있다고 하여 같이 정리하려 한다. JCA (Java Cryptography Architecture) 와 JCE (Java Cryptogr.. Tech/Java 2024. 12. 9. java.security.InvalidKeyException: Illegal key size or default parameters : Model has no value for key 에러 해결 들어가며AES 256 암복호화 코드를 구현하고 이를 사용하는 도중에 에러가 발생했다. 처음에는 구현한 코드의 문제라고 생각을 했는데, 구글리을 해보니 자바의 문제였다. 이는 보통 자바에서 대칭키로 암호화할 때 128bit를 초과하는 대칭키를 사용할 때 발생한다고 한다. 원인자바는 기본적으로 JCE 정책을 제공한다. 이 정책은 미국의 정책에 따라 128bit로 키 길이가 제한되어 있어서 이를 초과하는 경우에 에러가 발생할 수 있다. 해결방법Unlimited Strength 정책을 적용해 해결할 수 있다.오라클에서는 128bit 초과하는 키를 사용하고자 하는 사용자를 위해 공식 홈페이지에서 Unlimited Strength 정책 파일을 제공하고 있다. 1) JAVA 6 : https://www.oracle... Tech/Java 2024. 12. 9. 마샬링이 뭔데... 미슐랭밖에 모르는데!! 들어가며XML 데이터를 DTO로 변환하고 그 반대의 과정도 수행해야하는 업무를 진행하는 과정에서 Java의 JAXB 라이브러리를 알게 되었고, 마샬링과 언마샬링 개념까지 언급되었다.들어보기만 했었던 개념이라 자세하게 짚고 넘어가는 게 좋을 거 같아서 이를 정리해보려 한다!마샬링, 언마샬링이란?마샬링이란 객체나 특정 형태의 데이터를 저장 및 전송 가능한 데이터 형태로 변환하는 과정이다.언마샬링은 마샬링의 반대 개념으로, 변환했던 데이터를 원래대로 복구하는 과정이다. 개념만 봤을 때 직렬화, 역직렬화와 동일한 개념이 아닌가? 라는 생각이 들었다. 그래서 비교 해보기로 했다. 우선 직렬화, 역직렬화의 개념부터 확인해보자.직렬화란 객체나 데이터 구조를 연속적인 바이트 스트림으로 변환하는 과정이다. 웹에서는 이 .. Tech/Java 2024. 10. 16. JVM 구조에 대해 1. 클래스 로더(Class Loader)클래스 로더는 JVM이 실행 중에 필요한 클래스 파일을 동적으로 로드하는 역할을 합니다.클래스 로더는 계층 구조로 이루어져 있으며, 최상위 로더부터 하위 로더까지 순차적으로 클래스를 로드합니다.클래스 로더는 클래스 파일을 메모리에 로드하고, 링크와 초기화 과정을 거쳐 실행 가능한 상태로 만듭니다.2. 실행 엔진(Execution Engine)실행 엔진은 로드된 클래스의 바이트코드를 해석하고 실행하는 역할을 합니다.실행 엔진에는 인터프리터와 JIT(Just-In-Time) 컴파일러가 포함되어 있습니다.인터프리터는 바이트코드를 한 줄씩 해석하여 실행하고, JIT 컴파일러는 자주 사용되는 메서드를 네이티브 코드로 변환하여 실행 속도를 높입니다.3. 런타임 데이터 영역(.. Tech/Java 2024. 5. 22. 멀티 모듈 자바 21 보호되어 있는 글 입니다. 2024. 5. 2. 서블릿(Servlet)이란? 1. Servlet (서블릿) 서블릿은 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술을 말한다. 간단하게 서블릿은 자바를 사용해 웹을 만들기 위해 필요한 기술이다. 클라이언트가 어떤 요청을 하면 그에 대한 결과를 다시 전송해줘야 하는데, 이러한 역할을 하는 자바 프로그램이다. 예를 들어, 어떤 사용자가 로그인하려고 할 때 사용자는 아이디와 비밀번호를 입력하고 로그인 버튼을 누른다. 그때 서버는 클라이언트의 아이디와 비밀번호를 확인하고 다음 페이지를 띄워줘야하는데 이 역할을 수행하느 것이 서블릿(Servlet)이다. Servlet 특징 1. 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트 2. HTML을 사용해 요청에.. Tech/Java 2024. 3. 17. 자바의 예외 처리 1. 자바에서 예외 처리 방법 자바에서 예외 처리란, 프로그램 실행 중 발생할 수 있는 예기치 못한 예외 발생에 대비한 코드를 작성하는 것이며, 예외 처리의 목적은 예외의 발생으로 인한 실행 중인 프로그램의 갑작스런 비정상 종료를 막고 실행 상태를 유지할 수 있도록 함 예외 처리(Exception Handling) 정의: 프로그램 실행 시 발생할 수 있는 예외 발생에 대비한 코드를 작성하는 것 목적: 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지하는 것 자바의 예외 처리는 예외가 발생한 메소드 내에서 직접 처리하는 방법 예외가 발생한 메소드를 호출한 곳으로 예외 객체를 넘겨주는 방법 사용자 정의 예외를 생성해서 처리하는 방법 1. 예외가 발생한 메소드 내에서 직접 처리 (try - catch.. Tech/Java 2024. 2. 26. 자바 람다, 스트림 1. 람다식 (Lambda) 메서드를 하나의 식으로 표현한 것 람다식은 함수를 간략함녀서도 명확한 식으로 표현할 수 있게 해줌 메서드의 이름과 반환값이 없어지므로, 람다식을 익형 함수라고도 함 int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random() * 5) + 1); // 람다식 사용 // 위와 동일한 기능을 하는 함수 int method() { return (int)(Math.random() * 5) + 1; } 람다식은 메서드의 매개변수로 전달되는 것이 가능하고, 메서드의 결과로 반환될 수 있음 람다식으로 인해 메서드를 변수처럼 다룰 수 있음 장점 함수의 이름을 정의하지 않아도 사용 가능 문법이 간결해서 용이함 단점 람다식을 활용해.. Tech/Java 2024. 2. 2. 자바 예외: 체크 예외 기본 Exception 과 그 하위 예외는 모두 컴파일러가 체크하는 체크 예외이다. 단 RuntimeException 은 예외로 한다. 체크 예외는 잡아서 처리하거나, 또는 밖으로 던지도록 선언해야한다. 그렇지 않으면 컴파일 오류가 발생한다. Exception을 상속받은 MyCheckedException은 체크 예외가 됨 service.callCatch() 에서 예외를 처리했기 때문에 테스트 메서드까지 예외가 올라오지 않는다. - 예외를 잡아서 처리하는 코드 실행 순서를 분석해보자. test service.callCatch() repository.call() [예외 발생, 던짐] test service.callCatch() [예외 처리] repository.call() test [정상 흐름] service.c.. Tech/Java 2023. 11. 21. 객체 초기화 방식: User user = null vs User user = new User() User user = null; 과 User user = new User(); 의 차이점 User user = null;와 User user = new User();는 서로 다른 상황에서 사용된다. User user = null; 나중에 값을 할당하려는 변수를 선언할 때 변수의 초기 값이 나중에 다른 로직에서 설정될 경우 예외적인 상황을 처리하기 위해 변수를 null로 초기화할 때 예를 들어, 메서드나 블록 내에서 예외적인 조건에 따라 변수 값을 설정할 때 변수를 null로 초기화한다. 이 코드는 변수를 선언하고 초기화하지 않은(null) 상태로 둘 때 사용됩니다. 주로 다음과 같은 상황에서 사용된다 User user = new User(); 객체를 생성하고 초기화할 때 변수를 선언과 동시에 특정한 값을.. Tech/Java 2023. 10. 6. 이전 1 다음 728x90 반응형