SHA = Secure Hash Algorithm
해시란 임의 값을 넣어도 고정된 길이의 값으로 매핑하는 알고리즘이다.
MD5, SHA-1 도 있지만 보안 취약점이 발견돼 현재 해시 함수로 간주되지 않음.
'레인보우 테이블' 존재
레인보우 테이블이란 해시 함수에 대한 미리 계산된 해시 값을 담고 있는 테이블로 해시 값으로부터 원본 값을 유추할 수 있는 것이다. 그래서 추가된게 salt라는 개념.
원본 값에 salt라는 secret key를 추가해서 암호화한다.
SHA 256은 얼마나 큰 숫자일까?
2의 256승이다.
그럼에도 같은 경우가 존재할 수 있는데 이를 해시 충돌이라 한다.
다른 입력 값인데 같은 해시 값으로 출력되는 경우가 있다. 그래서 위에 특징 3번에서도 불가능이 아니고 어려움으로 표기한 것이다.
거의 마주할 일 없으니 확률적으로 그럴 수 있다는 것만 알고 넘어가면 된다.