Laravel에서 SHA-2(SHA-256, SHA-512)를 구현하여 사용자 비밀번호 암호화 해싱함수로 사용하기

Laravel은 사용자 비밀번호를 암호화하기 위한 해싱함수로 Bcrypt와 Argon2를 제공합니다. 이 중에서 디폴트 함수인 Bcrypt는 현재까지 등장한 해시함수 중 가장 안전한 방식 중 하나로 알려져 있습니다. 때문에 대부분의 프로젝트에서는 Laravel의 기본 해싱함수를 변경할 필요가 없습니다.

그럼에도 여전히 암호화를 위해 SHA-2 방식을 채택해야 하는 상황이 있습니다. 특히 대한민국의 경우에는 공적기관의 보수적인 보안정책으로 인해 이러한 필요가 생기기도 합니다. 이 때는 Laravel의 기본 해싱함수를 직접 구현하여 변경해야 합니다.

이번 포스팅에서는 SHA-512 방식의 Hasher 클래스를 구현하고, 이를 Laravel에 바인딩하여 비밀번호를 암호화하기 위한 해싱함수로 사용하는 방법을 소개합니다. 또한 이를 구현하기 위해 관련 기술문서와 소스코드를 찾아들어가는 과정을 생략없이 다루어, 향후에 여러분이 자신만의 새로운 서비스를 Laravel에 추가할 때 단서가 될 수 있게 하려 합니다.

Continue reading