Qualcuno può indicare le differenze tra le due situazioni di esempio in cui vengono utilizzate entrambe?NodeJS: crypto bcrypt vs nativo
bcrypt sembra fantastico.
Qualcuno può indicare le differenze tra le due situazioni di esempio in cui vengono utilizzate entrambe?NodeJS: crypto bcrypt vs nativo
bcrypt sembra fantastico.
Usa bcrypt dove vuoi fare hashing lento e computazionalmente costoso - questo sarà generalmente per hash dove in realtà non vuoi che un attaccante sia in grado di invertire l'hash, ad es. password utente. Usa la crittografia nativa per tutto il resto.
Nel compagno con la @ Mike-scott risposta, si dovrebbe preferire bcrypt
per cose relative password, ma ancora si può utilizzare crypto
per una vasta gamma di compiti come creare gettoni casuali o un checksum HMAC o SHA1/MD5 hash:
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);
Ti piacerebbe approfondire il motivo per cui bcrypt è migliore/più forte? Presumo che usi un hash più forte/più lungo? Utilizza un algoritmo diverso? Se è così dato due password simili, una hash con crittografia nativa e una con bcrypt qual è il costo stimato in tempo per l'inversione dell'hash? –
Bcrypt utilizza l'algoritmo Blowfish, che ha una fase di impostazione della chiave computazionalmente costosa. Quindi lo modifica per consentire all'impostazione della chiave di essere ripetuta un numero configurabile di volte - in genere qualcosa come 4.096 al momento, ma può essere aumentata quando l'hardware diventa più potente. La differenza di difficoltà dell'hashing inverso tra bcrypt e un hash regolare dipende quindi dalla configurazione di bcrypt. –