본문 바로가기

패스트캠퍼스

패스트캠퍼스 환급챌린지 40일차 : 9개 도메인 프로젝트로 끝내는 백엔드 웹 개발 (Java/Spring) 초격차 패키지 Online 강의 후기

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

공부 시작 시각 인증

공부 시작 시각 인증

수강 인증 사진

수강 인증 사진

※ 패스워드 관련 소스는 민감한 부분이라, 테스트만 올리도록 하겠습니다.

PasswordTest.java

package org.fastcampus.auth;

import org.fastcampus.auth.domain.Password;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.NullAndEmptySource;

import static org.junit.jupiter.api.Assertions.*;

class PasswordTest {
    @Test
    void givenPassword_whenMatchSamePassword_thenReturnTrue() {
        // given
        Password password = Password.createEncryptPassword("password");

        // when, then
        assertTrue(password.matchPassword("password"));
    }

    @Test
    void givenPassword_whenMatchDifferentPassword_thenReturnFalse() {
        // given
        Password password = Password.createEncryptPassword("differentPassword");

        // when,then
        assertFalse(password.matchPassword("password"));
    }

    @ParameterizedTest
    @NullAndEmptySource
    void givenPasswordIsNull_thenThrowError(String password) {
        assertThrows(IllegalArgumentException.class, () -> Password.createEncryptPassword(password));
    }
}

SHA-256 특징

SHA-256(Secure Hash Algorithm 256-bit)은 해시 함수 중 하나로, SHA-2(Secure Hash Algorithm 2) 계열에 속한다. SHA-256은 입력 데이터에 대해 고정된 256비트의 해시 값을 생성한다.

  1. 고정된 출력 크기: 입력값이 어떠한 크기이든, 항상 256 비트 고정된 크기로 해시 값을 생성한다.
  2. 단방향성: 입력값으로부터 해시 값을 계산할 수 있지만, 복원하는 것은 불가능하다.
  3. 충돌 저항성: 두 개의 서로 다른 입력값이 같은 해시 값이 생성될 확률이 매우 낮다.
  4. 민감도: 입력값의 작은 변화에도 해시 값은 큰 변화가 온다.

출처: https://blog.naver.com/it_summary/223791300280

 

해시 함수 SHA-256 이해하기

안녕하세요. IT summary입니다. 이 포스트는 해시 함수 SHA-256 이해하기입니다. 흥미를 돋우기 위해...

blog.naver.com

학습 인증샷

학습 인증샷

공부 종료 시각 인증

공부 종료 시각 인증

https://bit.ly/4hTSJNB