Ai đó có thể chỉ ra sự khác biệt giữa hai trường hợp ví dụ và trong đó sử dụng từng trường hợp?NodeJS: bcrypt so với mật mã bản địa
bcrypt trông tuyệt vời.
Ai đó có thể chỉ ra sự khác biệt giữa hai trường hợp ví dụ và trong đó sử dụng từng trường hợp?NodeJS: bcrypt so với mật mã bản địa
bcrypt trông tuyệt vời.
Sử dụng bcrypt nơi bạn muốn làm băm chậm và tốn kém tính toán - thường sẽ là băm mà bạn thực sự không muốn kẻ tấn công có thể đảo ngược băm, ví dụ: mật khẩu người dùng. Sử dụng mật mã gốc cho mọi thứ khác.
Trong đồng hành với @ mike-scott của câu trả lời, bạn nên thích bcrypt
cho các công cụ mật khẩu liên quan nhưng bạn vẫn có thể sử dụng crypto
cho một loạt các nhiệm vụ như tạo thẻ ngẫu nhiên hoặc một checksum HMAC hoặc SHA1/MD5 băm:
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);
Bạn có muốn giải thích thêm về lý do bcrypt tốt hơn/mạnh hơn không? Tôi giả sử nó sử dụng một băm mạnh hơn/dài hơn? Nó có sử dụng một thuật toán khác không? Nếu có hai mật khẩu tương tự, một mật khẩu được mã hóa với mật mã gốc và một mật mã với bcrypt chi phí ước tính trong thời gian để đảo ngược băm là gì? –
Bcrypt sử dụng thuật toán Blowfish, có giai đoạn thiết lập khóa tốn kém tính toán. Sau đó nó sửa đổi nó để cho phép thiết lập khóa được lặp lại một số lần có thể cấu hình được - thường là một cái gì đó giống như 4.096 hiện tại, nhưng nó có thể được tăng lên khi phần cứng trở nên mạnh hơn. Sự khác biệt về độ khó đảo ngược giữa bcrypt và băm thông thường do đó phụ thuộc vào cấu hình bcrypt. –