web3.eth.accounts.decrypt 在 cryp.createDecipheriv 抛出错误
Posted
技术标签:
【中文标题】web3.eth.accounts.decrypt 在 cryp.createDecipheriv 抛出错误【英文标题】:web3.eth.accounts.decrypt throws error at cryp.createDecipheriv 【发布时间】:2018-10-30 16:55:36 【问题描述】:我正在使用 Web3 和以太坊测试网络创建一个简单的 Dapp。我正在尝试解密版本 3 Keystore JSON 文件,但出现错误
this._web3.eth.accounts.decrypt( JSON.parse(jsonfile), "test123456789");
错误是这样的
cryp.createDecipheriv is not a function
我使用的是 1.0.0-beta.34 版本。
这里奇怪的是这发生在我的 Angular 应用程序上。
当我在 VueJS 中创建一个测试应用程序时。解密函数成功。
我对这两个都做了同样的过程
npm install web3 --save
npm 运行脚本构建
并遵循它在文档中的使用方式
http://web3js.readthedocs.io/en/1.0/web3-eth-accounts.html?highlight=encrypt
我的问题是,为什么这个错误发生在我的角度应用程序上,但它在我的 vue 应用程序上工作。我也想在 Angular 应用程序上进行这项工作,但不幸的是没有运气。
我所看到的有关此的所有信息都是这样 https://github.com/ethereum/web3.js/issues/1071 但我不明白在这里做什么。
谢谢
【问题讨论】:
【参考方案1】:更新: 琢磨了一会儿,又想了很多为什么。我决定从 web3-eth-accounts 编辑 index.js
并改变
var cryp = (typeof global === 'undefined') ? require('crypto-browserify') : require('crypto');
进入刚刚
var cryp = require('crypto-browserify');
现在可以了。但我仍然不知道我的角度设置有什么问题。 vue 应用具有相同的代码,但可以正常工作。
【讨论】:
以上是关于web3.eth.accounts.decrypt 在 cryp.createDecipheriv 抛出错误的主要内容,如果未能解决你的问题,请参考以下文章