더북(TheBook)

싱글 스레드 프로그래밍을 할 때 1초 동안 블로킹이 되는 것은 아닌지 걱정할 수도 있습니다. 다행히 crypto.randomBytescrypto.pbkdf2 메서드는 내부적으로 스레드 풀을 사용해 멀티 스레딩으로 동작합니다. 이러한 메서드가 몇 개 있는데 2.7.4절에서 알아보겠습니다.

콘솔

$ node pbkdf2
salt: OnesIj8wznyKgHva1fmulYAgjf/OGLmJnwfy8pIABchHZF/Wn2AM2Cn/9170Y1AdehmJ0E5CzLZULps+daF6rA==
password: b4/FpSrZulVY28trzNXsl4vVfhOKBPxyVAvwnUCWvF1nnXS1zsU1Paq2p68VwUfhB0LDD44hJOf+tLe3HMLVmQ==

randomBytes이므로 매번 실행할 때마다 결과가 달라집니다. 따라서 salt를 잘 보관하고 있어야 비밀번호 일치 여부를 확인할 수 있습니다. pbkdf2는 간단하지만 bcrypt나 scrypt보다 취약하므로 나중에 더 나은 보안이 필요하면 bcrypt나 scrypt 방식을 사용하면 됩니다. 이 책에서는 나중에 회원의 비밀번호를 암호화할 때 bcrypt 방식을 사용합니다.