Um novo salt
Parte da seção Autenticação e segurança do Journey de Node.js da Coddy. Lição 3 de 24.
As pessoas podem escolher a mesma senha. Um salt é um dado aleatório incluído ao derivar a chave da senha armazenada. Um salt novo faz com que senhas iguais produzam chaves armazenadas diferentes. O salt é salvo junto à chave; ele não precisa ser secreto.
const salt = randomBytes(8).toString('hex');
// 8 bytes aleatórios representados por 16 caracteres hexadecimaisGere o salt dentro da função chamada para cada nova senha. Um valor criado uma única vez, quando o servidor é iniciado, seria reutilizado. Você derivou uma chave usando um salt de prática fixo. Agora, o armazenamento de senhas precisa de um salt novo a cada vez. Aqui, pratique apenas a geração do salt e confira o comprimento do texto, que é de 32 caracteres.
randomBytes usa um gerador aleatório criptográfico. Math.random() não foi projetado para valores sensíveis à segurança. Use a função criptográfica importada para o salt.
Desafio
FácilEste é um pequeno projeto de prática. A configuração já está pronta; edite apenas exercise.js.
Retorne um salt aleatório novo de 16 bytes em hexadecimal em salt. Execute e GET /result duas vezes: cada resposta contém uma string hexadecimal diferente de 32 caracteres. Não use um salt fixo.
Experimente você mesmo
import { randomBytes } from 'node:crypto';
export function exercise() {
return { salt: '00000000000000000000000000000000' };
}
Todas as lições de Autenticação e segurança
Pratique por conta própria: Playground de Express