当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js crypto.getDiffieHellman(groupName)用法及代码示例


crypto.getDiffieHellman(groupName)

添加于:v0.7.5

参数

创建一个预定义的DiffieHellmanGroup key 交换对象。支持的组是:'modp1''modp2''modp5'(在 RFC 2412 中定义,但参见 Caveats)和 'modp14''modp15''modp16''modp17''modp18'(在 RFC 3526 中定义)。返回的对象模仿由 crypto.createDiffieHellman() 创建的对象的接口,但不允许更改键(例如,使用 diffieHellman.setPublicKey() )。使用这种方法的优点是双方不必事先生成或交换组模数,从而节省了处理器和通信时间。

示例(获取共享 key ):

const {
  getDiffieHellman
} = await import('node:crypto');
const alice = getDiffieHellman('modp14');
const bob = getDiffieHellman('modp14');

alice.generateKeys();
bob.generateKeys();

const aliceSecret = alice.computeSecret(bob.getPublicKey(), null, 'hex');
const bobSecret = bob.computeSecret(alice.getPublicKey(), null, 'hex');

/* aliceSecret and bobSecret should be the same */
console.log(aliceSecret === bobSecret);const {
  getDiffieHellman,
} = require('node:crypto');

const alice = getDiffieHellman('modp14');
const bob = getDiffieHellman('modp14');

alice.generateKeys();
bob.generateKeys();

const aliceSecret = alice.computeSecret(bob.getPublicKey(), null, 'hex');
const bobSecret = bob.computeSecret(alice.getPublicKey(), null, 'hex');

/* aliceSecret and bobSecret should be the same */
console.log(aliceSecret === bobSecret);

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 crypto.getDiffieHellman(groupName)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。