【发布时间】:2020-07-10 13:15:40
【问题描述】:
我尝试在 不使用插件的 javascript 中创建 Diffie Hellman 密钥交换系统。不幸的是,我的代码不起作用,并且经常创建 2 个不同的密钥。
代码:
var g = next_Prime_num(Math.ceil(Math.random() * 50));
var n = next_Prime_num(Math.ceil(Math.random() * 50) + 50);
var a = Math.ceil(Math.random() * (n - 1));
var b = Math.ceil(Math.random() * (n - 1));
var A = mod(Math.pow(g, a), n);
var B = mod(Math.pow(g, b), n);
var Ka = mod(Math.pow(B, a), n);
var Kb = mod(Math.pow(A, b), n);
function next_Prime_num(num) {
for (var i = num + 1;; i++) {
var isPrime = true;
for (var d = 2; d * d <= i; d++) {
if (i % d === 0) {
isPrime = false;
break;
}
}
if (isPrime) {
return i;
}
}
}
function mod(n, m) {
return n%m;
}
【问题讨论】:
标签: javascript cryptography diffie-hellman