节点10.14.2
电子4.0.5
我正在尝试从渲染器进程访问Node的内置加密对象,如下所示:
const nodeCrypto = require('crypto');
...
const iv = nodeCrypto.randomBytes(16)
尽管在线上看到数十个示例完全做到了这一点(包括在Electron问题中以及来自Electron团队成员的一个https://github.com/electron/electron/issues/2129#issuecomment-118799802-),但这是行不通的。我的代码可以编译,但是当我尝试运行它时,被告知randomBytes
上不存在nodeCrypto
。
再深入一点,我可以看到我的nodeCrypto对象是浏览器/ DOM SubtleCrypto
(https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto)的实例,这意味着我的require语句不是拉节点加密模块,而是而是依靠浏览器加密模块。
有什么想法吗?
其次,虽然我对SubtleCrypto
不熟悉,但我想它可以满足我的需要-只是基本的字符串加密/解密。有什么原因不使用SubtleCrypto
吗?
谢谢
TTE