Computer >> Máy Tính >  >> Lập trình >> Javascript

Phương thức crypto.pbkdf2 () trong Node.js

Hàm crypto.pbkdf2 (), còn được gọi là hàm Lấy khóa dựa trên mật khẩu, cung cấp một triển khai không đồng bộ của hàm phái sinh. Một khóa được tạo ra bằng cách sử dụng thông báo Hmac của một thuật toán được chỉ định từ mật khẩu, muối và các lần lặp

Cú pháp

crypto.createHmac(algorithm, key, [options])

Tham số

Các thông số trên được mô tả như bên dưới -

  • mật khẩu - Mật khẩu được xác định để lấy khóa có độ dài byte được yêu cầu. Các giá trị có thể có thuộc loại chuỗi, DataView, Buffer, v.v.

  • muối - Tương tự như mật khẩu để lấy chìa khóa. Các giá trị có thể có thuộc loại chuỗi, DataView, Buffer, v.v.

  • lần lặp lại - Nhận khóa mong muốn có độ dài byte được yêu cầu. Nó chấp nhận giá trị là số.

  • keylen - Đây là độ dài byte được yêu cầu của khóa. Nó thuộc loại số.

  • thông báo - Thuật toán Hmac được chỉ định bởi giá trị thông báo này. Giá trị mặc định là 'sha1'

  • gọi lại - Nếu có bất kỳ lỗi nào xảy ra ở chế độ không đồng bộ, lỗi đó sẽ được xử lý trong lệnh gọi lại

Ví dụ

Tạo một tệp với tên - pbkdf2.js và sao chép đoạn mã bên dưới. Sau khi tạo tệp, sử dụng lệnh sau để chạy mã này như được hiển thị trong ví dụ bên dưới -

node pbkdf2.js

pbkdf2.js

// crypto.pbkdf2() demo example

// Importing the crypto module
const crypto = require('crypto');

// Defining the pbkdf2 with the following options
crypto.pbkdf2('secret', 'salt', 100000, 64, 'sha512', (err, derivedKey) => {
   if (err) throw err;
   // Printing the derived key
   console.log("Key Derived: ",derivedKey.toString('hex'));
});

Đầu ra

C:\home\node>> node pbkdf2.js
Key Derived:
3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e47471cc47ed941c7ad618e8
27304f083f8707f12b7cfdd5f489b782f10cc269e3c08d59ae
b78ae2c0489cfde2c0489cfde3f10489

Ví dụ

Hãy xem thêm một ví dụ.

// crypto.pbkdf2() demo example

// Importing the crypto module
const crypto = require('crypto');

// Defining the pbkdf2 with the following options
crypto.pbkdf2('secret', 'salt', 100, 64, 'sha1', (err, derivedKey) => {
   if (err) throw err;
   // Printing the derived key
   console.log("Key Derived: ",derivedKey);
   console.log("Key Derived in hex: ",derivedKey.toString('hex'));
   console.log("Key Derived in base64: ",derivedKey.toString('base64'));
});

Đầu ra

C:\home\node>> node pbkdf2.js
Key Derived: <Buffer b7 36 35 f7 c0 88 2e 1f c3 ba 6e 29 b1 4a f1 27 4d f8 48 28 b4 d1 8f cc 22 2e b5 74 45 5f 50 5d 3d 23 19 13 2d 84 e1 91 a7 83 e2 00 73 4e 37 4a 24 b6 ... >
Key Derived in hex:
b73635f7c0882e1fc3ba6e29b14af1274df84828b4d18fcc222eb574455f505d3d2319132d84e1
91a783e200734e374a24b62cfab65dfb5e9dc28ae147072419
Key Derived in base64:
tzY198CILh/Dum4psUrxJ034SCi00Y/MIi61dEVfUF09IxkTLYThkaeD4gBzTjdKJLYs+rZd+16dwo
rhRwckGQ==