!101 [Java] AES-128 양방향 암호화 AES128 양방향 암호화 Github 코드 Hash 암호화와는 다르게 대칭키를 가지고 암호화와 복호화를 진행한다. AES 뒤에 붙는 128이나 192, 256은 대칭키의 bit수를 나타내는 것으로 AES-128의 경우 128bit의 대칭키를 쓰는 암호화 알고리즘이다. 128bit는 16byte이므로, 키의 String length가 16자리이다. (192bit = 24자리, 256bit = 32자리) 키의 길이에 따라서 암호화 라운드의 수만 다르므로 AES-128과 AES-192, AES-256은 구현되는 소스는 같다. 그러나 Java에서는 AES키 길이에 제한을 두기때문에 현재 공식적으로 AES-128밖에 지원하지 않는다. AES-128 이상 사용하려면 JRE의 정책 라이브러리를 갈아 끼우는 방법이 .. 2020. 7. 5. [Gradle] Deprecated Gradle features were used in this build.. Gradle 빌드 시 Deprecated Gradle features were used in this build, making it incompatible with Gradle x.x 일단 이 알림으로 인해 빌드에 실패하는건 아니다. 그냥 알림이다. 빌드에 실패했다면 다른 이유를 찾아 해결해야 한다. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/sunghs/project/PacketSniffer2/PacketSniffer/build/reports/tests/te.. 2020. 6. 29. [SPRING BOOT] REST API 개발하기 1 - 프로젝트 생성 및 Swagger2 연동 REST API 개발하기 1 - 프로젝트 생성 및 Swagger2 연동 GitHub 소스 REST API란 REST API란? URL 디자인 가이드는 여기를 참조함. SWAGGER란 WEB API의 기능을 자동으로 문서화 해주는 라이브러리. 기존 API 기능을 PostMan등을 통해 테스트 해야 했다면, 그러한 불편한 과정을 전부 없애준다. API 기능 request, response가 전부 가능하며, 기능 별 정리 및 model 명세서까지 전부 화면에서 확인이 가능하다. 프로젝트 생성 환경 Spring Boot 2.3.1 Gradle 6.4.1 Java 11 (amazon-corretto 11) Lombok 1. Spring Initializer로 프로젝트를 생성하고 build.gradle에 아래 de.. 2020. 6. 28. [Java] Hash 암호화 (MD5, SHA256) Hash 암호화 (MD5, SHA-256) GitHub 소스 Hash 기반 암호화는 단방향 암호화로, 한번 암호화 되면 복호화 할 수 없다. 입력 길이가 어떻든 출력 길이가 같아서 비둘기 집 원리에 의해 결과값 충돌은 이론상 피할 수 없어서 그렇다. (충돌 : 입력이 다른데, 암호화 된 출력이 같은 경우) 심지어 MD5는 충돌 재현이 되어서 MD5는 거의 안쓰이고 현재는 SHA-256 이상부터 쓰이고 있다. MD5 출력값 갯수 16^32개 SHA-256 출력값 갯수 16^64개 dependency 추가 없음 코드 /** * Hash 단방향 암호화 * * @author https://sunghs.tistory.com * @see source */ public class HashCipher { private.. 2020. 6. 28. [Java] 엑셀 읽기 (ExcelParse, ExcelRead, Xssf) 엑셀 읽기 깃허브 https://github.com/sunghs/java-utils apache-poi를 이용한 엑셀 파싱 라이브러리 추가 필요 build.gradle // Excel // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml implementation('org.apache.poi:poi-ooxml:4.1.2')2020.06 현재 가장 최신버전이다. (2020. 02 버전) /** * 엑셀 파일을 읽어 반환해주는 파서 * * @author https://sunghs.tistory.com * @see source */ public class ExcelParser { private final boolean isHeader; .. 2020. 6. 22. [Java] 이미지 리사이징 (Image Resize, AffineTransform) 이미지 리사이징 AffineTransform을 이용한 이미지 리사이징 원본 bufferedImage와 width, height를 가지고 리사이징을 진행 소스는 github에도 있다.(https://github.com/sunghs/java-utils) 라이브러리 추가 없음 /** * 이미지 리사이징 * @author https://sunghs.tistory.com * @see source */ public class ImageResizer { public static final int MAX_SCALE_SIZE = 10000; /** * @param image 원본 * @param w 리사이징 가로 (px) * @param h 리사이징 세로 (px) * @return reiszed buffered imag.. 2020. 6. 21. [Docker] Dockerfile 정리 Dockerfile Dockerfile은 Docker Image를 만들기 위한 스크립트 파일이다. Dockerfile 내에 Docker Image를 만들면서 해야하는 작업을 전부 명령어화 시켜 Docker Image를 만들기 위한 과정을 작성 할 수 있다. 예를들면 특정 Spring Boot 웹서비스를 띄우기 위한 Docker Image가 필요한데 순정 배포판 Docker Image를 받아다가 JDK도 설치 tomcat설치 (사실 여기까지 설치 되어있는 건 DockerHub에서 찾을수 있다.) 그리고 DockerImage 내에 Spring Boot App도 배포해야 할것이다. 이런 과정을 Dockerfile 내에 스크립트로 작성해놓으면, Docker가 Dockerfile을 읽어 JDK+tomcat+Spr.. 2020. 6. 21. [JAVA] Java Collections 생성과 동시에 초기화 Java Collections 생성과 동시에 초기화 출처 JavaCodeExamples 대표 Collections (Map, List, Set) 을 선언과 동시에 초기화 하는 방법. 클래스 인스턴스 시 생성자에서 주입하지 않고 고정으로 들어가는 값을 세팅하거나 할때 필요한 경우가 있다. 기본방법 private Map map = new HashMap() { { put("key1", "value1"); put("key2", "value2"); } }; private List list = new ArrayList() { { add("1"); add("2"); } }; private Set set = new HashSet() { { add("1"); add("2"); } }; List와 Set은 Arrays 클.. 2020. 6. 19. [MyBatis] org.apache.ibatis.binding.BindingException: Invalid bound statement org.apache.ibatis.binding.BindingException: Invalid bound statement org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): sunghs.test.mapper.TestMapper.selectInfoById at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:227) at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:49) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(Ma.. 2020. 6. 19. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음