nodejs로 백엔드 공부중인데
유저가 계정을 등록하는 부분을 만들고 있었음
입력값을 해시하여 반환해주는 패키지가 있어서 그걸 사용하는데
salt 어쩌고 하는, 옵션이 있는데 해싱을 몇번 할건지 지정할 수 있게 하는 인자가 잇더라고
그걸 5로 두고
입력한 비밀번호를 해싱한 결과를 db에서 보는데
분명 가입할때 비밀번호를 1111로 넣었는데
두 계정의 비밀번호 해시값이 다름
이게 말이 됨?
말하면서도 어이가없음
nodejs로 백엔드 공부중인데
유저가 계정을 등록하는 부분을 만들고 있었음
입력값을 해시하여 반환해주는 패키지가 있어서 그걸 사용하는데
salt 어쩌고 하는, 옵션이 있는데 해싱을 몇번 할건지 지정할 수 있게 하는 인자가 잇더라고
그걸 5로 두고
입력한 비밀번호를 해싱한 결과를 db에서 보는데
분명 가입할때 비밀번호를 1111로 넣었는데
두 계정의 비밀번호 해시값이 다름
이게 말이 됨?
말하면서도 어이가없음
그게 같으면 안되지 않나??
입력 값에 대해서 해쉬값이 항상 달라?
그럼 로그인할때 기준이 없어지잖아
아이디에대한 비번이여서 그런거 아님?
아이디가 비밀번호에 영향을 주도록 쓴 코드는 전혀 없는데
해시과정 자체를 비밀번호 입력값에 대해서만 진행되게 해놧어
해당 댓글은 삭제되었습니다.
음 그니까 내가 생각한 과정은 1111에 솔트를 4번 햇다 햇을때 각 과정에서의 결과값은 같을거라고 생각했는데 왜 같은 비밀번호를 같은 횟수만큼 솔트햇는데 결과가 다르냐 이말이지
그 검증 메소드의 동작원리를 간단히 설명해줄 수 있을까
감사합니다 잘읽어보겟슴미다
Salt값도 같음?
당연하지
애초에 회원가입을 만들때 사람마다 솔트 횟수를 다르게해버리면 그 횟수도 DB에 저장해주고 로그인할때에 또 그거 불러와서 그만큼 해쉬한다음에 비교하고 해야되잖어
지금 다시 해시해도 다르게 나오나?
어제 밤에 다른걸 확인해서 아무리 봐도 문제가 없어서 그냥 덮고 잤거든? 오늘 다시 새로 계정을 만들고 해도 다르게나와
아직 로그인 하는 파트를 안만들엇는데 벌써 해시값이 달라버리면 로그인 인증파트 만들때 당연히 문제가 생겨버리지않을까
당연히 문제 생기지
로그인할때 입력받은걸 해쉬해서 기존에 저장한 해쉬값이랑 비교하는건데
긍까,,,다르면 안되잖어,,
솔트는 원래 값에다가 붙이는걸 솔트라고 하고 해쉬 여러번하는거랑 다른 개념임
그럼 지금 다른게 정상이라는겨?
아니 니가 어떤 해쉬알고리즘 쓰는지 알려줘봐
그냥 내가 보는 강의엥서 bcrypt 라는 라이브러리를 쓰길래 나도 똑같이 쓰고있지
아 비크립트 쓰는구나 비크립트안에 검증하는거 쓰면 됨
혹시 비크립트 쓰나 싶었는데 그거 매번할때 달라지더라 ㅇㅇ 근데 안에 검증로직 있어서 그거 쓰면 됨
아 이 패키지는 뭔가 좀 다른 로직이 있어?
자세히 알면 혹시 설명좀 해줄수잇을까
bcrypt.compare 메서드 있는데 이거 쓰면 비교해서 검증해준다고 나와있네
나도 예전에 자바로 한번 만들고 안해봐서 가물가물한데 같은 입력인데 값이 자꾸 다르게 저장되는거는 기억하고 있음
감사합니다 도움마니대엇슴미다
해당 댓글은 삭제되었습니다.
뭔가 패키지만의 특성이 잇나봥 윗댓이 알려주려고 하고잇어