文章
问答
讲堂
百科图谱
线下集训
更多
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
讲堂
线下集训
专栏
活动
工作
文档
集市
搜索
登录/注册
5
如何从签名的十六进制编码中取出原来的值
回答问题即可获得
5
贡献值,回答被采纳后即可获得
10
学分。
比如我使用‘singer 123’进行签名 , 会获得一串十六进制编码0x12321312。如何从这个十六进制编码中解析出‘singer 123’ 我使用的库是ehters
比如我使用‘singer 123’进行签名 , 会获得一串十六进制编码0x12321312。如何从这个十六进制编码中解析出‘singer 123’ 我使用的库是ehters
0 条评论
请先
登录
后评论
默认排序
时间排序
4 个回答
Wade
- Footprint Analytics CTO
2024-05-20 16:58
擅长:数据分析,GameFi,NFT
```js const { ethers } = require('ethers'); // 创建一个新的钱包(私钥) const wallet = ethers.Wallet.createRandom(); // 原始消息 const message = 'singer 123'; // 对消息进行签名 const signature = await wallet.signMessage(message); console.log('签名:', signature); // 恢复签名者的地址 const signerAddress = ethers.utils.verifyMessage(message, signature); console.log('签名者的地址:', signerAddress); console.log('钱包地址:', wallet.address); ```
请先
登录
后评论
Phi·Wallet
- 区块链爱好者和从业者
2024-05-22 11:00
提问的逻辑错了。 一般的处理过程:把数据Hash,对Hash签名;验证的时候输入hash和签名,得到公钥(地址)。
请先
登录
后评论
Azleal
2024-05-27 20:40
先说结论,解析不出来。签名是单向算法,无法从签名的signature中得到原始数据。签名是用来验证数据没有被修改,也就是说如果要验签,需要同时传入原始消息以及消息签名。 如果你需要将字符串与16进制进行互转,可以使用下面的代码 ``` const data = 'singer 123'; // hexlified: 0x73696e67657220313233 const hexlified = ethers.utils.hexlify(ethers.utils.toUtf8Bytes(data)) // stringified: singer 123 const stringified = ethers.utils.toUtf8String(ethers.utils.arrayify(hexlified)) ```
请先
登录
后评论
jc0803kevin
- 合约开发/区块链开发/项目管理
6天前
解析不出来,单向的
请先
登录
后评论
您需要登录后才可以回答问题,
登录
关注
4
关注
收藏
0
收藏,
1269
浏览
提出于 2024-05-20 15:23
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: