DTO, DAT, 암호화

김정현·2025년 2월 24일
0

DTO, DAO

RequestJoin : DTO
MemberMapper : DAO

DTO(Data Transfer Object)는 계층 간 데이터 교환을 위한 객체로, 데이터베이스와 직접적인 연관 없이 사용된다. 예를 들어, RequestJoin 같은 DTO는 회원 가입 요청 정보를 담는 데 사용된다.

DAO(Data Access Object)는 데이터베이스와 직접 상호작용하는 객체로, CRUD(Create, Read, Update, Delete) 작업을 수행한다. MemberMapper 같은 DAO는 회원 정보를 조회하거나 저장하는 역할을 한다.

암호화 개념

  1. 양방향 암호화
    암호화된 데이터를 다시 복호화할 수 있는 방식으로, AES, RSA 같은 알고리즘이 있다. 비밀번호보다는 신용카드 정보 같은 복호화가 필요한 데이터에 사용된다.

  2. 단방향 암호화 (해시)
    암호화된 데이터를 복호화할 수 없는 방식이다. 비밀번호 저장에 적합하며, 대표적인 해시 알고리즘으로 MD5, SHA-256, SHA-512 등이 있다.

고정 해시 : 같은 값이면 항상 같은 해시 값이 생성된다. (MD5, SHA 계열)
유동 해시 : 같은 값이라도 매번 다른 해시 값이 생성된다. (Salt 사용, 예: BCrypt)

BCrypt (jbcrypt 라이브러리)

BCrypt는 보안성이 뛰어난 유동 해시 방식으로, 비밀번호 저장 시 주로 사용된다.

hashpw(...) : 비밀번호를 해시화
checkpw(...) : 해시 값을 검증

import org.mindrot.jbcrypt.BCrypt;

public class PasswordEncryption {
    public static void main(String[] args) {
        String password = "mySecurePassword";
        
        // 비밀번호 해싱
        String hashedPassword = BCrypt.hashpw(password, BCrypt.gensalt());
        System.out.println("Hashed Password: " + hashedPassword);
        
        // 비밀번호 검증
        boolean isMatch = BCrypt.checkpw(password, hashedPassword);
        System.out.println("Password Match: " + isMatch);
    }
}

0개의 댓글

관련 채용 정보