
해시는 암호화 알고리즘 중에 하나이다. 그리고 해시함수를 이용하여 고정된 길이의 비트열로 변경해준다.
해시의 가장 큰 특징은 다음과 같다.
- 입력값이 일부만 변경되어도 전혀 다른 해시값을 출력한다.
- 입력값과 상관없이 고정된 길이의 해시값을 출력한다.
- 단방향 암호화 기술이라 복호화가 불가능하다.
- 입력값이 같으면 출력값도 항상 같다.
이러한 특징들 덕분에 이 해시함수는 비밀번호를 암호화하여 저장하는데 사용이 된다.
이렇게 암호화된 비밀번호가 DB에 저장된다면 혹여나 DB가 해커에 의해 탈취되어도 비밀번호는 알수가 없다.
레인보우 테이블
해커는 위의 해시의 4번의 특징을 이용하여 자주 쓰는 비밀번호를 미리 해쉬로 만들어놓은 레인보우 테이블을 써서 사용하여 비밀번호의 원문을 알아낸다.
솔트(Salt)

그래서 레인보우 테이블같은 해킹 기법을 막기 위해서 비밀번호를 해쉬하기 전에 비밀번호를 임의의값(Salt)을 합쳐서 해시함수에 넣어서 암호화한다. 이렇게 함으로써 레인보우 테이블에서 비밀번호를 찾을 수 없게한다.
댓글