Menu
CoddyTech

바이트와 16진수 텍스트

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

암호화 함수는 바이트를 다룹니다. 바이트는 0부터 255까지의 숫자입니다. UTF-8은 텍스트를 바이트로 인코딩하고, Buffer는 Node에서 이러한 바이트를 저장합니다. 16진수, 즉 hex는 숫자 0부터 9와 문자 a부터 f를 사용해 각 바이트를 두 개의 문자로 씁니다. 따라서 바이트를 텍스트로 편리하게 저장할 수 있습니다.

const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'

문자 O에 해당하는 바이트는 십진수로 79이며, 16진수로는 4f로 씁니다.

이 변환은 되돌릴 수 있습니다. 정보가 아니라 표현 방식이 바뀌기 때문입니다. 비밀번호를 hex로 인코딩해도 비밀번호가 보호되는 것은 아닙니다. 비밀번호 해시는 디코딩하는 대신 파생 값을 다시 계산해 확인합니다. 여기서 입력값은 일반 텍스트이며, 연습에서는 두 형식을 비교할 수 있도록 입력값의 16진수 표현을 반환합니다.

challenge icon

챌린지

쉬움

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

제공된 텍스트를 UTF-8 바이트로 인코딩한 다음 16진수로 변환한 값이 들어 있는 hex 필드를 반환하세요. {"text":"Hi"}를 /result에 POST하면 {"hex":"4869"}가 반환됩니다. Ada 텍스트는 416461을 반환합니다.

직접 해보기

export function exercise({ text }) {
    return { hex: text };
}

인증과 보안의 모든 레슨

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