로그인 기능을 만들기 위해서는 아이디와 패스워드가 필요합니다. 아이디야 평문으로 해도 상관없지만, 패스워드는 보안상 평문으로 저장하면 안 됩니다. 그렇다면 평문을 다른 사람이 알아볼 수 없게 만들어야 합니다. 이를 위해 암호화를 사용하거나, 해시 함수를 이용해 평문을 해시값으로 변경합니다. 그리고 로그인 시 동일한 해시값이라면 로그인이 성공하고, 다르다면 실패합니다. 일반적으로 해시를 많이 이용하지만, 해시에는 치명적인 문제가 있습니다. 바로 중복 문제입니다. 즉, 서로 다른 평문에 해시 함수를 적용한다고 해서 그 결과가 서로 다르다는 보장은 할 수 없습니다. 이렇게 되면 해시 결과값만 같다면 로그인이 된다는 것인데, 보안상 나쁜 게 아닐까요?그렇다면 어째서 로그인에는 해시를 사용하는 걸까요? 암호화를 ..