node.js - 在 Electron 中使用 Node.js Crypto:crypto.scryptSync 不是函数
问题描述
问题
我正在尝试在我的 React 应用程序中使用 Node.js Crypto 中的scrypt
和scryptSync
函数,该应用程序在 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)。
解决方案
推荐阅读
- oracle-apex - 如何在循环中调用两次重定向
- azure-devops - 如何捕获在 Azure DevOps 中运行管道的人员
- docker - Docker buildx - 构建失败并出现“TLS 握手超时”,而 docker pull 工作正常
- json - Groovy JsonOutput.toJson(Object) 返回空字符串
- python - 在 python 中是否有任何替代方法来替换运行时中的变量,如 unix shell 脚本 {!variableName}
- node.js - Docker 与 node.js
- c# - 如何使用 Mimekit 从 IOS 保存附件
- sql - 带有插入语句的 CTE 函数
- excel - 如何使用 SharePoint excel Services REST API 更新工作簿中的工作表(可能是单元格)
- linux - 将长参数发送到 python argparser