javascript - 如何生成随机素数?

标签 javascript node.js random primes node-crypto

我目前正在从事一个涉及密码学的 JavaScript 团队项目。

我希望我的程序尽可能安全,如果可能的话达到行业级安全,因此我一直在寻找社区认可的随机大质数生成算法的实现。

我探索了 Node.js Crypto,但我没有找到一个返回随机大可能素数的简单函数。

如何使用 Node.js Crypto 来解决这个问题?

最佳答案

从 v15.8.0 开始,Node.js 内置的 crypto 模块提供了 generatePrimegeneratePrimeSync方法。

例如,要生成一个 16 位素数,使用:

const crypto = require('crypto');

let prime = crypto.generatePrimeSync(16, {bigint: true}); // 49597n

由于计算大素数需要时间,因此还有一个带有回调的异步选项:

const crypto = require('crypto');

crypto.generatePrime(16, {bigint: true}, (err, prime) => {
    console.log(prime); // 60757n
});

注意:bigint 选项用于返回 bigint 而不是 ArrayBuffer

关于javascript - 如何生成随机素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61101371/

相关文章:

javascript - 如果未评估条件 - 所有选项均不匹配

javascript - 如何通过 RJS 代理访问数组?

node.js - command.js - .prompt 被删除,现在怎么办?

scala - 关于如何在 Scala 中使用随机值向现有 DataFrame 添加新列

javascript - 围绕其内容调整动态创建的 div 的大小

javascript - 将此 javascript 对象从 jQuery 传递到 PHP?

javascript - 对此行为 : ES6 Promise that is never resolved 的解释是什么

node.js - ES6 React服务端渲染,如何导入React组件?

javascript - 尝试根据前一个函数的结果显示图像

c# - 类数组