เมธอดนี้สร้าง 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>