如何在浏览器端使用 Diffie Hellman 算法?

How to use Diffie Hellman algorithm at the browser?

我想使用 nodeJS 作为服务器端语言。 NodeJS 有加密模块,其中 DiffieHellman 是 class。所以,我可以用这个方法来生成密钥和计算密钥。

但是,客户端还需要创建另一个 diffiehellman 实例 class。但是怎么做呢?我可以在客户端使用加密模块吗?如果是那么如何,任何解决方案? 这是我的客户端代码...

const crypto = require('crypto');
const express = require('express');
const app = express();

// Generate server's keys...
const server = crypto.createDiffieHellman(139);
const serverKey = server.generateKeys();
//send p=prime and g=generator to the client

不确定您打算在这里实现什么,但浏览器似乎有这样的端口: https://www.npmjs.com/package/crypto-browserifycreateDiffieHellman 在已经移植的模块列表中。特别要看一下这个例子:https://github.com/crypto-browserify/crypto-browserify/tree/master/example。而不是 createHash 我相信你可以尝试调用 createDiffieHellman.

有关 client-side ECDH 密钥生成和密钥交换的示例,请参阅 http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html javascript。