이번에는 암호화 및 복호화 모듈인 해시 함수에 대해 알아봅시다! 1. 해시 함수해시 함수란? 입력 데이터를 고정 길이의 해시 값으로 변환하는 암호화 모듈입니다.주로 데이터의 무결성을 확인하거나 비밀번호 저장, 디지털 서명 등에 사용됩니다.해시 함수는 입력 데이터의 크기와 상관없이 항상 같은 길이의 해시 값만 생성하며, 해시 값에서 원래 데이터를 복원할 수 없어요.. 해시 함수의 종류로는 다음과 같이 있습니다. 1-1. MD5(Message-Digest Algorithm)MD5는 입력 데이터를 128bit(16byte)의 해시 값으로 변환합니다.또한, 고정된 32자리의 16진수 문자열로 출력됩니다.하지만, 현재는 보안 취약점으로 인해 비밀번호 저장 or 데이터 무결성 검증 등의 용도로는 사용을 피하는 것이..
프로젝트 도중 저는 현재 시간과 현재시간 + 5분을 비교하는 java 코드를 작성하고자 했습니다.그러기 위해서는 java에서 현재 시간을 나타내는 클래스가 있어야 하는데..구글링을 통해 찾던 도중 제가 원하는 것을 찾았습니다! 1. LocalDateTimeLocalDateTime은 Java 8에서 도입된 날짜와 시간을 다루기 위한 클래스입니다.이 클래스는 시간대 정보를 포함하지 않는 날짜와 시간을 표현해요. 즉, 다른 특정 지역의 시간으로 변환할 필요가 없다는 뜻이죠.또한, LocalDateTime은 불변성입니다. 즉, 한 번 생성된 객체는 변경할 수 없고, 변경이 필요할 경우, 새로운 객체를 생성해야 해요.그리고 날짜와 시간을 쉽게 조작할 수 있는 다양한 메서드를 제공합니다. 예를 들어, 날짜 추가, ..
그러면 이번엔 비대칭 키 암호화의 종류에 대해 알아봅시다. (암호화 및 복호화 모듈 정의와 대칭키 암호화란?) 1. 비대칭 키 암호화(Asymmetric Key Encryption)비대칭 키 암호화는 암호화와 복호화에 서로 다른 키(공개키와 개인키)를 사용하는 방식을 뜻해요.데이터를 암호화할 때는 공용 키를 사용하고, 암호화된 데이터를 복호화할 때는 개인 키를 사용합니다.이로 인해, 공용 키를 사용하여 암호화된 데이터는 해당 개인 키를 가진 사람만 복호화할 수 있어요.주요 알고리즘으로는 다음과 같습니다. 1-1. RSA (Rivest–Shamir–Adleman)RSA는 가장 널리 사용되는 비대칭 키 암호화 알고리즘으로, 주로 데이터의 안전한 전송과 디지털 서명에 사용됩니다.RSA의 기본 원리는 두 개의 ..
프로젝트를 하다보면, 어떠한 중요 개인정보를 사용해야 하는 경우가 있는데요.워낙 중요하기에, 이를 암호화하여 사용하거나 복호화하여 읽어들이는 상황이 발생합니다.이러한 상황을 해결하기 위해 Java에서 AES를 사용하는 방법을 알아봅시다! (AES란?) 1. AES를 사용한 Java 코드그럼 본격적으로 AES를 사용하여 Java코드로 작성한 암호화 및 복호화 기능을 만들어 봅시다. import는 다음과 같이 추가해 줍니다.import java.nio.charset.StandardCharsets;import java.util.Base64;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.Sec..
회사 관련 프로젝트를 하던 도중, Java에서 사용자의 id를 암호화로 받아온 뒤, 암호화된 id를 복호화 시키는 작업이 필요했습니다.그러한 과정을 거칠 수 있는 암호화 및 복호화 모듈에 대해 알아봅시다. 1. 암호화 및 복호화 모듈이란?암호화 및 복호화 모듈은 데이터를 보호하고, 기밀성을 유지하며, 무결성을 보장하기 위해 사용되는 도구에요.암호화(Encryption)는 데이터를 이해할 수 없는 형태로 변환하여, 인가되지 않은 사용자가 데이터를 읽지 못하게 하는 과정이며, 복호화(Decryption)는 암호화된 데이터를 원래의 형태로 변환하는 과정입니다. 2. Java 암호화 및 복호화모듈Java에서 암호화 및 목보화 모듈은 일반적으로 javax.crypto 패키지를 통해 수행됩니다.이 패키지는 다양한 ..
java로 작업이 되어 있는 오픈소스를 분석하던 도중 신기한 코드를 보았습니다.바로 try문 안에 소괄호가 있는 것인데요!제가 알고 있는 try문은 바로 실행문으로 넘어가는 것인데, 이것이 바로 try-with-resources라고 하네요.이는 무엇인지 궁금하여, 알아보게 되었습니다. 1. try-with-resourcestry-with-resource 구문은 Java 7에서 도입된 기능으로, 리소스를 명시적으로 닫아주는 것이 아니라, 자동으로 닫아주는 구조를 제공한다고 합니다.이를 통해 코드가 더 간결하고 안전해지며, 리소스를 제대로 해제하지 않아 발생할 수 있는 메모리 누수 or 다른 문제를 방지할 수 있습니다. 2. 기본 문법그러면 직접 사용해 보기 전에, 문법이 어떻게 이루어져 있는지 확인해 봅시..