首页 > 解决方案 > 在 Electron 中使用 Node.js Crypto:crypto.scryptSync 不是函数

问题描述

问题

我正在尝试在我的 React 应用程序中使用 Node.js Crypto 中的scryptscryptSync函数,该应用程序在 Electron v11.1.1 中运行。

const nodeCrypto = require('crypto');

// does not work
const kek = nodeCrypto.scryptSync('password', 'salt', 64).toString('hex');

我面临错误TypeError: nodeCrypto.scryptSync is not a function

附加信息

crypto.scryptSync在 v10.5.0 版本中添加到 Node.js 中。我有 Node.js v14.15.3:

~$ node -v
v14.15.3

我可以randomBytes从 Node.js Crypto 使用就好了:

// works fine
nodeCrypto.randomBytes(32).toString("hex");

我选择分配crypto给常量nodeCrypto 是因为Chrome 已经包含一个名为crypto的全局变量,但这并没有改善这种情况。

一如既往,我非常感谢您的帮助。

--

我承认 StackOverflow 上已经存在这个问题的几个实例,尽管它们似乎可以通过更新 Electron 来解决。但是,据我了解,我使用的是最新版本的 Electron (v11.1.1)。

标签: node.jselectronnode-crypto

解决方案


推荐阅读