因此,我有一个web3js脚本(Bot),类似于这样的内容:
let walletAddress = ""
let pvtKey = ""
signed = await web3.eth.accounts.signTransaction(txObject, pvtKey);没有纯文本私钥的最佳做法是什么?我可以从一个文件中读取它,但是如果攻击者可以提升他的权限,他也可以从文件中读取它。
使用webjs加密/解密功能都没有帮助,因为在本例中,我会在脚本中显示密码(假设攻击者能够提升权限),所以我只是推迟了问题。
如果他能读到我的剧本的话,我想从天蓝色或aws的金库里读东西也是一样的。
什么是最好的方法来做到这一点,而不需要一个硬件钱包(因为这是一个机器人,不断张贴交易)。
发布于 2023-01-28 18:58:21
你应该使用dotenv软件包。
然后创建一个.env文件,并将所有这些重要的键放在那里。例如,.env文件应该如下所示:
PRIVATE_KEY=okdoqkdoqdefleifhelkslksnhlfksefkl您希望使用该密钥的文件必须按如下方式访问:
require('dotenv').config() //This configures the usage of the file.现在,您可以在该文件中将其用作:
signed = await web3.eth.accounts.signTransaction(txObject, process.env.PRIVATE_KEY);同样,您也可以存储其他密钥并访问它们。
重要事项:将
.env文件包含在.gitignore中,否则如果发布,将使密钥易受攻击。
https://ethereum.stackexchange.com/questions/143855
复制相似问题