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

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

Phương thức trên tạo một đối tượng trao đổi khóa DiffieHellman với sự trợ giúp của giá trị nguyên tố được cung cấp và một trình tạo cụ thể tùy chọn. Đối số trình tạo có thể chứa một chuỗi, số hoặc giá trị Bộ đệm. Giá trị mặc định cho trình tạo là 2.

Cú pháp

crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator], [generatorEncoding]

Tham số

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

  • nguyên tố - Số bit nguyên tố sẽ được tạo ra. Giá trị đầu vào thuộc loại số.

  • primeEncoding - Tham số này xác định bảng mã của chuỗi nguyên tố. Các loại đầu vào có thể có là:chuỗi, bộ đệm, TypedArray và DataView.

  • máy phát điện - Trình tạo để tạo đối tượng khóa trao đổi. Giá trị mặc định:2.

  • Trình tạo mã hóa - Tham số này xác định mã hóa chuỗi trình tạo.

Ví dụ

Tạo một tệp có tên - index.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 index.js

Mã chương trình

// crypto.createDiffieHelmmanGroup(prime, [primeEncoding],
[generator],[generatorEncoding])
// Demo Example

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

// Initializing and defining the prime value
const server = crypto.createDiffieHellman(20);

// Generating keys
server.generateKeys();

// Creating keys using server prime and generator
const client= crypto.createDiffieHellman(
   server.getPrime(), server.getGenerator());

client.generateKeys();

// Printing the server and client values
console.log("Server prime: ", server.getPrime().toString('hex'), "\nServer generator: ", server.getGenerator().toString('hex'));

console.log("Client prime: ", client.getPrime().toString('hex'), "\nClient generator: ", client.getGenerator().toString('hex'));

Đầu ra

C:\home\node>> node index.js
Server prime: 0fed0b
Server generator: 02
Client prime: 0fed0b
Client generator: 02

Vì các đối số được truyền cho cả máy chủ và máy khách đều giống nhau. Do đó, các khóa được tạo cũng giống nhau.

Ví dụ

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

// crypto.createDiffieHelmmanGroup(prime, [primeEncoding],
[generator],[generatorEncoding])
// Demo Example

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

// Initializing and defining the prime value
const val = crypto.createDiffieHellman(12);

// Printing prime value for abve DiffieHellman
console.log(val.getPrime());

// Printing the generator value
console.log(val.getGenerator())

Đầu ra

C:\home\node>> node index.js
<Buffer 0f 6b>
<Buffer 02>