Menu
CoddyTech

새로운 솔트

Coddy Node.js 여정의 인증과 보안 섹션에 포함된 레슨. 24개 중 3번째.

사람들은 같은 비밀번호를 선택할 수 있습니다. 솔트는 저장할 비밀번호 키를 파생할 때 포함되는 무작위 데이터입니다. 새로운 솔트를 사용하면 같은 비밀번호라도 서로 다른 저장 키가 생성됩니다. 솔트는 키 옆에 저장하며 비밀로 유지할 필요는 없습니다.

const salt = randomBytes(8).toString('hex');
// 16개의 16진수 문자로 표현된 8개의 임의 바이트

새 비밀번호마다 호출되는 함수 안에서 솔트를 생성하세요. 서버가 시작될 때 한 번 생성한 값은 재사용됩니다. 고정된 연습용 솔트를 사용해 키를 파생해 보았습니다. 이제 비밀번호를 저장할 때마다 새로운 솔트가 필요합니다. 여기서는 솔트를 생성하고 32자 텍스트 길이를 확인하는 연습만 하세요.

randomBytes는 암호학적 난수 생성기를 사용합니다. Math.random()은 보안이 중요한 값에 사용하도록 만들어진 것이 아닙니다. 솔트에는 가져온 암호학적 함수를 사용하세요.

challenge icon

챌린지

쉬움

이것은 간단한 연습 프로젝트입니다. 설정은 이미 제공되어 있으니 exercise.js만 수정하세요.

salt에 새로운 16바이트 무작위 솔트를 16진수로 반환하세요. GET /result를 두 번 실행하면 각 응답에 서로 다른 32자의 16진수 문자열이 포함됩니다. 고정된 솔트를 사용하지 마세요.

직접 해보기

import { randomBytes } from 'node:crypto';
export function exercise() {
    return { salt: '00000000000000000000000000000000' };
}

인증과 보안의 모든 레슨

직접 연습해 보세요: Express 플레이그라운드