티스토리 뷰
SHA-256이란?
SHA-256은 메시지, 파일, 혹은 데이터 무결성 검증에 널리 사용되는 암호화 해싱 알고리즘(함수)입니다. SHA-256은 넓게는 SHA-2 패밀리에 속하고 변환하기를 원하는 문자들을 256 bit 길이의 key로 변환합니다. SHA-256을 사용하면 문자가 조금만 바뀌어도 해시값이 완전히 변합니다.
SHA-256 과정
SHA-256은 대략적으로 (1) 전처리 (2) 해시 계산의 과정을 따릅니다.
1. 먼저 변환하고자 하는 문자열을 바이너리 형태로 변환합니다.
2. 바이너리 데이터는 512비트의 블락들로 나뉩니다. 만약 블락이 512보다 크다면 512비트에서 자릅니다.
3. 앞서 512비트로 나눈 블락들을 다시 32비트로 자릅니다.
4. 압축 함수를 64회 반복수행합니다.
5. 각 블락별로 해시값을 구하는데, 첫 번째 블락의 해시 결과가 두번째 블락의 입력값으로 사용되며 두 번째 블락의 해시결과는 첫번째 블락의 해시 결과와 두번째 블락 데이터와 결합해서 구해집니다.
6. 최종적으로 256비트의 해시값이 생성되는데 이것이 SHA-256 결과값입니다.
SHA-256의 안정성
무한 대의 자원과 시간이 있따면 해킹할 수 있겠지만 아직까지는 아무도 해내지 못했습니다. 그리고 해시 충돌면에 있어서도 SHA-256은 아직까지 충돌 사례가 없습니다.
'Spring(스프링)' 카테고리의 다른 글
[Spring] @RequestBody, @ResponseBody 란? (0) | 2023.05.16 |
---|---|
Spring DAO란? DTO란? VO란? DTO와 Entity를 분리하는 이유 (0) | 2023.05.03 |