본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
공부 시작 시각 인증
수강 인증 사진
※ 패스워드 관련 소스는 민감한 부분이라, 테스트만 올리도록 하겠습니다.
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비트의 해시 값을 생성한다.
- 고정된 출력 크기: 입력값이 어떠한 크기이든, 항상 256 비트 고정된 크기로 해시 값을 생성한다.
- 단방향성: 입력값으로부터 해시 값을 계산할 수 있지만, 복원하는 것은 불가능하다.
- 충돌 저항성: 두 개의 서로 다른 입력값이 같은 해시 값이 생성될 확률이 매우 낮다.
- 민감도: 입력값의 작은 변화에도 해시 값은 큰 변화가 온다.
출처: https://blog.naver.com/it_summary/223791300280
해시 함수 SHA-256 이해하기
안녕하세요. IT summary입니다. 이 포스트는 해시 함수 SHA-256 이해하기입니다. 흥미를 돋우기 위해...
blog.naver.com