首页/新闻资讯/正文详情

eos 密钥管理实战:使用 cleos wallet keys 与 private_keys 列出钱包公私钥对

发布时间:2026/9/23 19:45:57 来源:云帆数科 栏目:资讯中心
eos 密钥管理实战:使用 cleos wallet keys 与 private_keys 列出钱包公私钥对
区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载本指南以 docs/02_cleos/02_how-to-guides/how-to-list-all-key-pair.md 为骨架结合 programs/cleos/main.cpp 与 plugins/wallet_plugin 的源码实现深入讲解在 EOSeos 开源智能合约平台开发环境中如何用cleos钱包命令列出公钥、私钥以及公私钥对。读完本文你将掌握cleos wallet keys、cleos wallet private_keys两条命令的完整用法、输出格式、底层调用链与安全边界能够安全地在开发、测试与生产环境中核对密钥。背景公钥/私钥对与 cleos 钱包模型在 EOS 区块链中每一对密钥由两部分组成私钥private key用于对交易签名是账户权限的最终凭证必须严格保密公钥public key由私钥通过椭圆曲线算法推导而来用于验证签名可以公开。这些密钥对存放在由keosdkey store daemon密钥存储守护进程管理的钱包wallet中。cleos作为命令行客户端通过 JSON-RPC 与keosd通信来执行钱包操作。钱包本身由密码password加密保护钱包创建时keosd返回一个密码后续解锁钱包、导出私钥都必须提供该密码。相关钱包操作命令的完整清单可参考 cleos 钱包命令参考。开始前的准备按照原文档的要求执行本指南前需要满足以下条件安装当前支持的cleos版本cleos随 EOSIO 软件一同分发安装 EOSIO 即包含cleos参见 安装指南。理解公私钥对的概念清楚什么是公钥、什么是私钥以及它们在签名验证中的作用。确保钱包服务可用keosd正在运行且本地存在已创建的钱包可通过cleos wallet create创建详见 如何创建钱包。第一步解锁钱包密钥列表操作要求钱包处于解锁状态。默认钱包名为default解锁命令如下cleos wallet unlock对于命名钱包使用-n/--name指定钱包名并通过--password传入创建钱包时返回的密码cleos wallet unlock -n my_wallet --password PW5Ji6JUrLjhKAVn68nmacLxwhvtqUAV18J7iycZppsPKeoGGgBEw成功时输出Unlocked: my_wallet解锁命令的 CLI 定义位于 programs/cleos/main.cpp它接受-n/--name钱包名默认default与--password可选若省略则交互式提示输入随后调用wallet_unlockRPC 完成解锁。提示也可以先运行cleos wallet list查看当前已打开的钱包及其锁定状态——输出中带*的钱包表示已解锁见 wallet_manager.cpp 的list_wallets()实现。第二步列出所有公钥列出所有已解锁钱包中的全部公钥cleos wallet keys该命令无位置参数、无选项参见 wallet keys 命令参考输出为 JSON 数组例如[ EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV, EOS8Znrtgwt8TfpmbVpTKvA2oB8Nqey625CLN8bCN3TEbgx86Dsvr ]cleos wallet keys只输出公钥不暴露任何私钥信息因此适合在需要确认哪些公钥可用于签名、核对账户权限对应的公钥等场景使用。第三步列出指定钱包的全部公私钥对列出某个已解锁钱包中公私钥对同时输出公钥与对应的私钥cleos wallet private_keys该命令的选项如下参见 wallet private_keys 命令参考选项说明-n, --nameTEXT要列出密钥的钱包名称缺省为default--passwordTEXT创建钱包时返回的密码wallet create的返回值指定钱包名并显式传入密码的完整形式cleos wallet private_keys -n my_wallet --password PW5Ji6JUrLjhKAVn68nmacLxwhvtqUAV18J7iycZppsPKeoGGgBEw输出为公私钥对组成的 JSON 数组形如[ [ EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV, 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 ] ]注意private_keys会同时输出公钥与私钥且除了解锁状态外还必须再次提供钱包密码这是list_keys流程中的强制校验见下文源码分析请务必在可信环境中执行。底层原理两条命令的完整调用链CLI 层子命令与回调两条子命令在 programs/cleos/main.cpp 中定义cleos wallet keys无参数回调中调用wallet_public_keysRPC并打印返回的 JSONto_pretty_string美化输出cleos wallet private_keys接受-n/--name与--password回调中先调用prompt_for_wallet_password(wallet_pw, wallet_name)确保拿到密码命令行未提供时交互式输入再调用wallet_list_keysRPC。RPC 层wallet_api_plugin 端点注册RPC 端点注册于 plugins/wallet_api_plugin/wallet_api_plugin.cppwallet_list_keys(name, pw)→wallet_manager::list_keys参数为钱包名与密码wallet_public_keys()→wallet_manager::get_public_keys无参数。该插件注册在http_plugin之上默认监听127.0.0.1:8900。若keosd配置为对外监听非 loopbackwallet_api_plugin会强制要求 HTTPS 并打印安全告警见 wallet_api_plugin.cpp因为钱包 RPC 承载着私钥导出等高敏感操作。服务端实现wallet_manager核心逻辑在 plugins/wallet_plugin/wallet_manager.cppget_public_keys()L138-L151遍历所有已加载的钱包仅对未锁定的钱包调用list_public_keys()合并其公钥若没有任何钱包已解锁直接抛出wallet_locked_exception。这正是cleos wallet keys只聚合已解锁钱包的原因——锁定钱包的密钥无法被读取。list_keys(name, pw)L126-L136按名字查找钱包钱包不存在抛wallet_nonexistent_exception钱包被锁定抛wallet_locked_exception随后调用check_password(pw)校验密码校验通过后才返回wallet-list_keys()的完整公私钥映射。这就是为什么private_keys必须重复输入密码——它是解锁校验之外的第二道防线。钱包存储实现soft_wallet默认的软件钱包soft_wallet实现位于 plugins/wallet_plugin/wallet.cpplist_keys()L381-L385若钱包已锁定则抛异常否则直接返回内存中解密后的_keys映射mappublic_key_type, private_key_typelist_public_keys()L387-L392同样要求未锁定只提取键公钥返回check_password()L363-L371对密码做fc::sha512哈希用其解密钱包文件中的cipher_keys并校验 checksum从而验证密码正确性。私钥在磁盘上以加密形式保存只有解锁并传入正确密码后才能导出明文这一设计保证了即使钱包文件泄露攻击者也无法直接获取私钥。密钥格式公钥通常以EOS前缀的 base58 编码形式展示私钥以 WIFWallet Import Format形式展示如5K...开头若密钥为 R1 曲线如使用cleos wallet create_key创建 K1/R1 类型密钥私钥则以PVT_R1形式表示。安全警告切勿在生产环境泄露私钥原文档在结尾给出明确警告本文再强调一遍小心绝对不要在真实生产环境中输出你的私钥。cleos wallet private_keys会在终端明文打印私钥因此在使用时务必注意只在本机可信终端执行避免在共享主机、录屏环境或日志会被采集的环境中运行不要让私钥进入 shell 历史可通过交互式输入密码避免在命令行参数中书写密码执行后建议清理终端记录私钥即权限任何持有私钥的人都能代表对应权限签名交易、转移资产泄露私钥等于放弃对应账户权限优先用公钥核对多数场景如配置节点、绑定账号权限只需公钥应优先使用cleos wallet keys仅在确实需要导出私钥如备份、迁移钱包到其他机器时才使用cleos wallet private_keys生产环境建议使用硬件钱包或安全元件仓库中的yubihsm_wallet与se_wallet安全元件钱包见 plugins/wallet_plugin/yubihsm_wallet.cpp 与 plugins/wallet_plugin/se_wallet.cpp实现了同样的list_keys()接口私钥保存在硬件中、永不导出明文可显著降低私钥泄露风险。常见问题排查Wallet not found指定的钱包名不存在检查拼写或用cleos wallet list查看已有钱包Wallet is locked钱包处于锁定状态先执行cleos wallet unlockYou dont have any unlocked wallet!执行cleos wallet keys时所有钱包均为锁定状态源码见 wallet_manager.cpp先解锁再重试Invalid password for walletprivate_keys传入的密码错误请核对创建钱包时返回的密码源码见 wallet.cppUnable to connect to keosdkeosd未启动或--wallet-url指定的端口不对默认钱包 RPC 地址为http://127.0.0.1:8900。总结命令用途是否输出私钥是否需要密码cleos wallet unlock解锁钱包前置步骤否是cleos wallet keys列出所有已解锁钱包的公钥否否cleos wallet private_keys列出指定已解锁钱包的公私钥对是是两条密钥查看命令覆盖了从核对公钥到导出私钥的完整需求keys面向日常开发与权限核对private_keys面向备份与迁移。理解其底层调用链cleos → keosd RPC → wallet_manager → soft_wallet后你不仅能熟练使用命令还能在遇到锁定、密码错误等问题时快速定位原因。最后再次强调私钥只在必要时导出且绝不在生产环境中暴露。赞分享区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载相关推荐拔掉Windows AI的刺RemoveWindowsAI彻底清理指南拔掉Windows AI的刺RemoveWindowsAI彻底清理指南 任务管理器里那个偷偷吃 CPU 的 Copilot 进程是不是又烦到你了Remov区块链EOSIO cleos wallet create_key 命令详解在钱包内生成 K1 / R1 密钥对EOSIO cleos wallet create_key 命令详解在钱包内生成 K1 / R1 密钥对 本篇技术指南围绕 EOSIO 节点工具集 cleos区块链EOSIO cleos wallet 命令完全指南本地钱包的创建、解锁与密钥管理EOSIO cleos wallet 命令完全指南本地钱包的创建、解锁与密钥管理 导读 cleos wallet 是 EOSIO 节点工具链中用于与本地钱包区块链创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

broken什么意思? 拆解实战项目里的报错根源
broken什么意思? 拆解实战项目里的报错根源

broken什么意思? 拆解实战项目里的报错根源 看了一堆教程还是不会写项目,这种挫败感我太懂了。你背了无数单词,读了几千行文档,结果真上手做一个实战项目,终端里蹦出个 AttributeError: 'NoneType' object… · 2026/9/23 19:45:50

多智能体强化学习算法解析:从VDN到QPLEX的演进与PyTorch实现
多智能体强化学习算法解析:从VDN到QPLEX的演进与PyTorch实现

简介:面向需完成多智能体强化学习课程设计或期末大作业的学生与开发者,这份压缩包提供了基于Python实现的VDN、QMIX、QTRAN、QPLEX四种经典算法完整源码,并附带对应训练好的模型文件,可直接加载运行或在此基础上进行二次开发与算法… · 2026/9/23 19:45:43

备战上海交大夏令营:搞定3道高频面试题背后的性能优化
备战上海交大夏令营:搞定3道高频面试题背后的性能优化

备战上海交大夏令营:搞定3道高频面试题背后的性能优化 代码从网上复制下来,本地一跑直接报错,看着满屏的红字和堆栈信息,脑子瞬间一片空白,完全不知道从哪下手调试。这种“眼高手低”的尴尬,在准备保研面试时尤为致命,尤其是像 上海交大夏令营… · 2026/9/23 19:45:37

2026最新微信订阅号登录避坑指南
2026最新微信订阅号登录避坑指南

2026最新微信订阅号登录避坑指南 配置环境就卡半天?别慌,这通常是接口权限没开对。 很多人对着微信开发者文档抓瞎,其实核心逻辑没变。 这篇2026最新的实操笔记,带你从前端到后端跑通全流程。 概念速懂:订阅号能做什么 先说结论:… · 2026/9/23 20:17:46

3步搞定txt导入excel,面试必问的底层逻辑
3步搞定txt导入excel,面试必问的底层逻辑

3步搞定txt导入excel,面试必问的底层逻辑 官方文档里那几百页关于文件流、编码格式和内存管理的描述,读起来确实让人头大,抓不住重点。其实面试里问“txt导入excel”,考的从来不是你会不会调个库,而是你能不能讲清楚数据在内存里是怎么… · 2026/9/23 20:17:39

Java海康威视SDK开发实战:从JNA环境搭建到视频门禁系统
Java海康威视SDK开发实战:从JNA环境搭建到视频门禁系统

简介:这套基于Java海康威视SDK进行二次开发的网络摄像头与门禁系统源码,专为毕业设计、课程设计与实际项目开发场景打造。压缩包共186个文件,约1.5MB,以174个Java源文件为核心,辅以XML、YML配置、JAR依赖、Dockerfile及… · 2026/9/23 20:17:32

FP-growth算法Python实现:FP树构建、递归挖掘与可视化
FP-growth算法Python实现:FP树构建、递归挖掘与可视化

简介:这份资源面向数据挖掘与机器学习初学者及需要落地关联规则分析的开发者,围绕FP-growth频繁模式增长算法提供Python实现与FP树可视化工具,可用于购物篮分析、频繁项集挖掘与大型数据库中的频繁模式发现。压缩包共11个文件,约4… · 2026/9/23 20:17:32

C# 全托管驱动 Oracle.ManagedDataAccess 连接 Oracle 实战与避坑
C# 全托管驱动 Oracle.ManagedDataAccess 连接 Oracle 实战与避坑

简介:这是一份面向C#开发者的Oracle数据库连接与操作实战教程资源,重点讲解使用Oracle.ManagedDataAccess驱动快速接入Oracle的完整方案。只需填写数据库IP、用户名和密码等基础信息即可建立连接,适合刚接触Oracle的.NET程序员以及需要统一数… · 2026/9/23 20:17:25

SAP FICO自动付款配置与F110执行全流程:从FBZP到底表存储
SAP FICO自动付款配置与F110执行全流程:从FBZP到底表存储

简介:本资源面向SAP FICO顾问、财务信息化实施人员及需要掌握自动付款功能的运维学习者,围绕F110自动付款的配置、测试与底表存储展开,帮助解决银行主数据维护、收付程序设置及付款建议生成等实操问题。压缩包内共1个docx文档,约1… · 2026/9/23 20:17:17

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码