5.区块链系列之私钥管理

这篇具有很好参考价值的文章主要介绍了5.区块链系列之私钥管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文讲解如何对私钥加密处理以及部署后需注意的事项

1.新建encryptKey.js
const ethers = require("ethers");
const fs = require("fs-extra");
require("dotenv").config();

async function main() {
  const wallet = new ethers.Wallet(process.env.PRIVATE_KEY);
  const encryptedJsonKey = await wallet.encrypt(
    process.env.PRIVATE_KEY_PASSWORD,
    process.env.PRIVATE_KEY
  );
  console.log(encryptedJsonKey);
  fs.writeFileSync("./.encryptedKey.json", encryptedJsonKey);
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });

目前我们的.env文件配置为

PRIVATE_KEY=36b785b98b0567f1e6cdfe4f67e884d8d3fb24ba0dbac0776f935d558f39e165
RPC_URL=http://127.0.0.1:7545
PRIVATE_KEY_PASSWORD=shenjian.online

控制台执行生成.encryptedKey.json文件

(base) PS D:\blockchain\ehthers-simple-storage-fcc> node encryptKey.js

现在我们删除.env中的PRIVATE_KEY=36b785b98b0567f1e6cdfe4f67e884d8d3fb24ba0dbac0776f935d558f39e165

2. 修改deploy.js私钥部分

现在我们将上节介绍的deploy.js文件中注释私钥部分放开

async function main() {
  let provider = new ethers.providers.JsonRpcProvider(process.env.RPC_URL);
  // 私钥不加密方式,开发
  //let wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);

  // 生产环境私钥一定要加密,并且history历史命令记录也要清空,否则后果自负!!!!!!!!
  const encryptedJson = fs.readFileSync("./.encryptedKey.json", "utf8");
  let wallet = new ethers.Wallet.fromEncryptedJsonSync(
    encryptedJson,
    process.env.PRIVATE_KEY_PASSWORD
  );
  wallet = wallet.connect(provider);
  ......
}

再次运行部署,同样成功

(base) PS D:\blockchain\ehthers-simple-storage-fcc> node deploy.js
Deploying, please wait...
Contract deployed to 0xe52A9CFCCAd1cDF934614D0Cd93BB7Fa9650ae64
Current Favorite Number: 0
Updating favorite number...
New Favorite Number: 7
3. linux下进一步安全

.env文件中我们去掉PRIVATE_KEY_PASSWORD=shenjian.online,
然后运行[linux下]

PRIVATE_KEY_PASSWORD=shenjian.online node deploy.js
history -c

欢迎关注公众号算法小生或沈健的技术博客shenjian.online文章来源地址https://www.toymoban.com/news/detail-663577.html

到了这里,关于5.区块链系列之私钥管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GO语言-区块链离线钱包开发之如何存储私钥

    # 如何存储私钥 在确保私钥安全的情况下,为了更好的体验,我们需要让钱包把私钥存储起来。给用户更好的体验感。Geth是将私钥通过加密技术转换为json格式的文件,这个文件虽然是明文的,但是解析它的时候需要密码,否则将无法解密。 在Geth中,使用`personal.newAccount(\\\"p

    2024年02月16日
    浏览(26)
  • 【一个大坑,持续更新】番外之区块链之创建泰安链账户、泰安链项目和生成公钥私钥

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 最开始了解BSN是因为BSN的开发者大赛,如果你想尝试一下开发或学习区块链的相关知识,我认为是一个很好的入门平台。 来看一下它的简介: 区块链服务网

    2024年02月03日
    浏览(43)
  • 【区块链】HyperLedger Besu Vault密钥服务

    话先说在前头,本文只对Vault整合Hyperledger Besu区块链(以下简称“besu”)部署进行说明,并不推荐使用Vault服务(原因下面会说)。Vault的主要作用在于系统化存储用户信息并配合EthSigner实现个人权证签署。 besu关于密钥存储提供了线上和线下两种存储方案,当初为了方便扩展

    2024年04月15日
    浏览(16)
  • 手把手教你使用Java生成助记词、私钥、地址|Java区块链钱包生成助记词、地址

    在spring boot 项目中的 pom.xml文件中加入需要的依赖 可见恢复的地址和我们生成地址一样。

    2024年02月11日
    浏览(38)
  • windows下的私钥权限管理

    被问到Windows的私钥是否可以共享给多个用户,我们知道CNG创建的私钥,压根就没有提供跨用户和组的机制,因此无论对称还是非对称,CNG中的私钥没办法在用户间共享。 Windows支持的SACL中的访问客体,也不包括密钥。 但是有一处私钥确实可以设置ACL的,那就是证书管理器中

    2024年01月17日
    浏览(35)
  • 基于量子密钥分发和区块链技术的新一代加密通信系统

    量子技术和区块链技术是国家信息安全和国家数字化转型的重要组成部分,在国家战略中具有重要地位。“十四五”规划纲要将“加快数字发展建设数字中国”作为独立篇章,指出要进一步明确发展云计算、大数据、物联网、工业互联网、区块链、人工智能、虚拟现实和增强

    2024年02月09日
    浏览(36)
  • 代码管理git生成ssh key (公钥私钥)配置GitLab

    git在我们日常项目管理中起了很大的作用,是我们能够更好地管理我们的代码,git的管理是基于ssh密钥进行的,所以在使用前我们需要进行ssh配置。 首先我们需要配置user name和email 配置完成我们需要去查看我们本地是否已经存在.ssh文件夹(一般存在c盘用户下面,也可使用命令

    2024年02月16日
    浏览(44)
  • 前端js使用jsrsasign,生成RSA秘钥,获取一系列信息(公钥,私钥,模数,指数等)进行加密解密

    前言: 之前的项目里用的RSA加解密的时候是生成固定的公钥(模数,指数)和私钥放在代码里进行数据的解密。现在要修改成前端自己生成(模数和指数)传给后台。后台加密数据返回给我。我在用私钥解密。 后面查了很多,开始的window.crypto里的方法可以生成公钥和私钥,

    2024年02月16日
    浏览(49)
  • 阿里云-密钥管理系统密钥导入功能

    最近在看阿里云密钥管理系统的导入功能,准备照着官网提供的文档进行一次测试,结果发现文档有问题,和售后扯了两天才搞清楚了,记录下免得以后忘了 1、创建外部密钥 1、登录密钥管理服务控制台。 2、在页面左上角的地域下拉列表,选择密钥所在的地域。 3、在左侧

    2024年02月04日
    浏览(23)
  • 建木使用进阶-创建密钥管理

    阿丹:                 第一次我们进入建木,第一件事情就是配置我们相关的密钥。 解读:         在建木中我们可以进行创建密钥来对我们服务器等密码进行方便的管理。  注意:         登录的时候账号为:admin         密码为:123456         这是初始化的账号

    2024年02月15日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包