스프링부트에서 Bcrypt로 암호화한 값을 node 혹은 django에서도 사용할 수 있을까?

상황

기존 레거시 스프링부트 웹 페이지를 node js를 활용해 다시 개발해야하는 상황이 발생했습니다. 이 과정에서 기존에 회원가입된 회원들의 정보를 그대로 이용해야 하는 상황이었기 때문에 기존 계정 테이블을 활용해야 했습니다.

하지만 여기서 문제가 발생했습니다. 보통 계정 테이블에 저장되는 비밀번호는 평문으로 그대로 저장되지 않습니다. 보안 문제로 인해 암호화된 뒤 저장되는데요. 그럼 저희는 이 과정에서 사용된 암호화 방식을 알아야 같은 암호화 방식을 이용해 로그인하는 계정의 인증 기능, 신규 가입자들의 회원가입 기능 등을 구현할 수 있습니다.

만약 이 암호화 방식을 다른 방식으로 사용한다면, 아무리 기존 회원들이 자신들이 사용하던 비밀번호를 입력해도 이를 암호화하는 방식이 달라졌기 때문에 데이터베이스에 존재하는 암호화된 비밀번호와 일치하지 않아 로그인에 실패하게 됩니다.

Bcrypt 모듈

레거시 코드를 까보니 BcryptPasswordEncoder를 이용해 암호화했다는 것을 확인할 수 있었습니다. 이때 Bcrypt 모듈은 자바, 노드, C, 파이썬 등 거의 모든 언어에서 제공될 수 있도록 모듈화되어 있습니다. 그러므로 저도 노드에서 사용되는 Bcrypt 모듈을 활용해 암호화를 진행한다면 기존 데이터베이스를 그대로 사용할 수 있지 않을까 추측했습니다.

스프링부트 BcryptPasswordEncoder vs 노드 bcrypt

results matching ""

    No results matching ""