¿Alguien puede señalar las diferencias entre las dos situaciones de ejemplo y dónde usar cada una?NodeJS: bcrypt vs criptografía nativa
bcrypt se ve genial.
¿Alguien puede señalar las diferencias entre las dos situaciones de ejemplo y dónde usar cada una?NodeJS: bcrypt vs criptografía nativa
bcrypt se ve genial.
Usa bcrypt donde quieras hacer un hashing lento y computacionalmente costoso: generalmente será para hashes en los que realmente no quieres que un atacante pueda revertir el hash, p. contraseñas de usuario Use criptografía nativa para todo lo demás.
En compañera con la @ mike-scott respuesta, se debe preferir bcrypt
para la materia relacionada con la contraseña, pero todavía se puede utilizar crypto
para una amplia gama de tareas como crear fichas al azar o una suma de comprobación HMAC o SHA1/hash MD5:
var crypto = require('crypto');
// random tokens
var buf = crypto.randomBytes(16).toString('hex');
console.log('Random token of %d bytes in hexadecimal: %s', buf.length, buf);
var buf = crypto.randomBytes(16).toString('base64');
console.log('Random token of %d bytes in base 64: %s', buf.length, buf);
// a hashed message authentication checksum (HMAC) using a shared secret key
var string = 'My coffee please';
var key = 'Right away sir';
var encrypted = crypto.createHmac('sha1', key).update(string).digest('hex');
console.log('Encrypting "%s" using passphrase "%s": %s', string, key, encrypted);
// a MD5 hash
var hashmd5 = crypto.createHash('md5').update(string).digest('hex');
console.log('The MD5 hash of "%s" is %s', string, hashmd5);
// a SHA1 hash
var hashsha1 = crypto.createHash('sha1').update(string).digest('hex');
console.log('The SHA1 hash of "%s" is %s', string, hashsha1);
¿Te gustaría explicar más sobre por qué bcrypt es mejor/más fuerte? Supongo que usa un hash más fuerte/más largo? ¿Utiliza un algoritmo diferente? Si es así, da dos contraseñas similares, una hash con criptografía nativa y otra con bcrypt. ¿Cuál es el costo estimado a tiempo para la reversión hash? –
Bcrypt usa el algoritmo Blowfish, que tiene una fase de configuración de clave computacionalmente costosa. A continuación, lo modifica para permitir que la configuración de la clave se repita un número configurable de veces, por lo general algo así como 4,096 en la actualidad, pero se puede aumentar a medida que el hardware se vuelve más poderoso. La diferencia en la dificultad de la mezcla inversa entre brypt y un hash regular depende de la configuración de brypt. –