Bytes e texto hexadecimal
Parte da seção Autenticação e segurança do Journey de Node.js da Coddy. Lição 1 de 24.
Funções criptográficas trabalham com bytes. Um byte é um número de 0 a 255. UTF-8 codifica texto como bytes, e um Buffer armazena esses bytes no Node. O hexadecimal, ou hex, representa cada byte com dois caracteres, usando os dígitos de 0 a 9 e as letras de a a f. Isso torna os bytes convenientes para armazenar como texto.
const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'O byte da letra O é 79 em decimal, escrito como 4f em hex.
Essa conversão é reversível: ela muda a representação, não a informação. Codificar uma senha em hex não a protege. Um hash de senha é verificado recalculando um valor derivado, em vez de decodificá-lo. Aqui, as entradas são textos comuns, e o exercício retorna sua representação em hex para que você possa comparar as duas formas.
Desafio
FácilEste é um pequeno projeto de prática. A configuração já está pronta; edite apenas exercise.js.
Retorne um campo hex contendo o texto fornecido codificado como bytes UTF-8 e, em seguida, em hexadecimal. Enviar {"text":"Hi"} por POST para /result retorna {"hex":"4869"}. O texto Ada retorna 416461.
Experimente você mesmo
export function exercise({ text }) {
return { hex: text };
}
Todas as lições de Autenticação e segurança
1Senhas
Bytes e texto hexadecimalDerivando uma chave de senhaUm novo saltNunca armazene senhasComparando bytes da chaveVerificando uma senhaRegras de cadastroPratique por conta própria: Playground de Express