본문 바로가기

IT/JAVA

(12)
[JAVA] AES-256 암호화 하기 1. AES 란? AES는 고급 암호화 표준이라는 의미이며, 암호화 및 복호화 시 동일한 키를 사용하는 대칭키 알고리즘입니다. AES의 종류는 AES-128, AES-192, AES-256이 있고 각각 뒤에 붙은 숫자가 키의 길이를 의미합니다. AES 암호화 알고리즘은 높은 안정성과 빠른 속도로 전세계적으로 사용되고 있습니다. 2. AES 암호화 설명 1) Secret Key Secret Key는 평문을 암호화하는데 사용되며 절때로 외부에 노출되어서는 안됩니다. AES의 종류가 무엇이냐에 따라 Secret Key의 길이가 달라집니다. (AES-256는 256비트(32바이트)의 키를 사용합니다.) 2) Block Cipher AES는 128비트(16바이트)의 고정된 블록 단위로 암호화를 수행합니다. (이는..
[JAVA] SHA-256 암호화 하기 1. SHA-256란? SHA-256은 SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256비트로 구성되며 64자리 문자열을 반환합니다. 해시 알고리즘 SHA-2 계열 중 하나이며, 2^256만큼 경우의 수를 만들 수 있습니다. SHA-256 해시 함수는 어떤 길이의 값을 입력하더라도 256비트의 고정된 결과값을 반환합니다. 입력 값이 조금만 변동되더라도 반환값이 완전히 달라지기 때문에 반환값을 토대로 입력값을 유추하는 것이 거의 불가능하다고 합니다. SHA-256은 단방향 암호화 방식이기 때문에 복호화가 불가능합니다. 복호화를 하지 않아도 되기 때문에 속도가 빠르며, 사용 예로 비밀번호의 일치여부 확인이 있습니다. 여기서 단방향 암호화란 평문을 암호화 했을 때, 원래 평문으로 ..
[JAVA] POI Excel 다운로드 기능 만들기 apache poi 라이브러리를 이용해서 자바, 또는 웹상에서 Excel 파일 다운로드 기능을 만들어 보겠습니다. 1. poi란? 아파치 POI(Apache POI)는 아파치 소프트웨어 재단에서 만든 라이브러리로서 마이크로소프트 오피스 파일 포맷을 순수 자바 언어로서 읽고 쓰는 기능을 제공한다. 출처 : https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_POI 2. poi 사용 예제 1) poi library 추가 (maven) org.apache.poi poi 5.0.0 org.apache.poi poi-ooxml 5.0.0 용도에 맞게 pom.xml에 해당 라이브러리를 추가해주세요. 2) ExcelUtil (File, HttpServletRespo..
[Java] 자바 정규식 정리 1. 정규 표현식이란 정규표현식이란 선택한 문자열에 특정 패턴 문자들이 있는지 확인하는 표현식입니다. 정규표현식을 이용해서 두가지 작업을 진행할 수 있습니다. 1) 입력된 문자열이 전화번호, 이메일, IP주소, 주민등록번호 등의 형식과 일치하는지 검증할 수 있습니다. 2) 입력된 문자열의 정해진 형식이 있다면 원하는 값을 추출할 수 있습니다. (ex: json, log, html tag 등..) 이번 포스팅에서는 문자열 검증에 대해서 정리해보겠습니다. 2. 정규 표현식 정리 정규 표현식 설명 ^ 문자열의 시작 $ 문자열의 종료 . 임의의 한 문자 * 앞의 문자가 0개 ~ 여러개 있음 ex) [a-z]* 소문자 알파벳을 0개 ~ 여러개 입력 가능 .* 임의의 문자를 0개 ~ 여러개 입력 가능 + 앞의 문자..
[JAVA] 입출력 스트림 (InputStream, OutputStream)란? 1. Stream 이란 프로그램은 외부에서 데이터를 읽거나 외부로 데이터를 출력하는 작업이 빈번하게 일어납니다. 이때 데이터는 어떠한 통로를 통해서 데이터가 이동되는데, 이 통로를 Stream 이라고 합니다. 자바에는 이러한 기능을 수행하기 위해 InputStream와 OutputStream이 존재하며 단일 방향으로 연속적으로 흘러갑니다. InputStream과 OutputStream은 추상 클래스이며 추상 메소드를 오버라이딩해서 다양한 역할을 수행할 수 있습니다. (예 : 파일, 네트워크, 메모리 입출력) 자바에서 기본적으로 제공하는 I/O 기능은 java.io 패키지에서 제공됩니다. InputStream은 외부에서 데이터를 읽는 역할을 수행하고, OutputStream은 외부로 데이터를 출력하는 역할..
[JAVA] jjwt library 사용방법 - JWT(Java Web Token) JWT란? 2020/10/02 - [IT/기타] - [JWT] Json Web Token이란? 1. jjwt란? jjwt는 JWT 토큰 생성 및 JWT 토큰 파싱, 검증을 해주는 라이브러리 입니다. 2. Maven dependency 추가 ... ... io.jsonwebtoken jjwt 0.9.1 ... ... 3. 예제 import io.jsonwebtoken.Claims; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.Jwts; import java.io.UnsupportedEncodingException; import java.util.Date; ..
[JAVA] 배열 설명 및 초기화 방법 1. 배열이란 메모리 상에 동일한 타입의 데이터를 연속적으로 나열하여 저장하는 자료구조입니다. 2. 배열의 특징 메모리 상에 특정 길이 만큼 메모리 공간을 선언하면, 변경할 수 없다. 배열은 연속된 메모리 공간을 갖고 있다. 배열은 인덱스를 통해서 데이터에 접근할 수 있다. 3. 배열 선언 및 초기화, 출력 public class Main { public static void main(String[] args) { //배열을 초기화하는 3가지 방법 int[] arr1 = new int[10]; int[] arr2 = {1, 3, 4, 5, 6}; int[] arr3 = new int[]{1, 3, 2, 4, 1, 5, 1}; //특정 인덱스에 데이터 삽입 arr3[0] = 500; //배열을 출력하는 방..
[Java] Windows 10 Open-JDK 8 다운로드 및 환경변수 설정 1. Open JDK 8 다운로드 오라클의 OpenJdk https://jdk.java.net/java-se-ri/8-MR3 OpenJdk https://github.com/ojdkbuild/ojdkbuild 위 경로 중 한개를 선택해서 JDK를 설치합니다. 2. JDK 환경변수 등록 내 PC 우 클릭> 속성 > 고급 시스템 설정 > 환경 변수로 이동합니다. 시스템 변수 새로 만들기 변수 이름 : JAVA_HOME, 변수 값 : 다운로드받은 Open-JDK 경로 입력 후 확인버튼 클릭 ( ex : E:\java\java-1.8.0-openjdk-1.8.0.252-2.b09 ) Path 시스템 변수 편집 새로만들기 > %JAVA_HOME%\bin 입력 > 확인 버튼 클릭 환경 변수창의 확인 버튼을 누른 후..