Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เมธอด crypto.createDiffieHellman() แบบระบุ prime เองใน Node.js

เมธอดนี้สร้าง DiffieHellman key exchange object ด้วยค่า prime ที่ระบุเอง และ generator ทางเลือก (ค่าเริ่มต้น 2) รองรับ prime และ generator เป็น string, number หรือ Buffer

ไวยากรณ์

crypto.createDiffieHellman(prime, [primeEncoding], [generator], [generatorEncoding])

พารามิเตอร์

  • prime – ค่า prime (ตัวเลข, string, Buffer, TypedArray, DataView)
  • primeEncoding – encoding ของ prime string
  • generator – generator ค่าเริ่มต้น: 2
  • generatorEncoding – encoding ของ generator string

ตัวอย่าง: แลกเปลี่ยนคีย์ระหว่าง Server และ Client

const crypto = require('crypto');

const server = crypto.createDiffieHellman(20);
server.generateKeys();

const client = crypto.createDiffieHellman(
  server.getPrime(),
  server.getGenerator()
);
client.generateKeys();

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

ผลลัพธ์

Server prime: 0fed0b
Server generator: 02
Client prime: 0fed0b
Client generator: 02

เนื่องจาก prime และ generator เหมือนกัน คีย์ที่สร้างจึงเหมือนกัน

ตัวอย่าง: ดูค่า prime และ generator โดยตรง

const crypto = require('crypto');
const val = crypto.createDiffieHellman(12);

console.log(val.getPrime());    // <Buffer 0f 6b>
console.log(val.getGenerator()); // <Buffer 02>