当前位置: 首页 > wzjs >正文

小企业网站服务器网络运维工程师简历范文

小企业网站服务器,网络运维工程师简历范文,网站和域名有关系吗,广州做营销型网站建设背景知识 了解数字货币的朋友肯定都知道助记词是什么,丢失意味着什么,为了让不了解的朋友也能愉快的读完本文,我简单介绍下; 数字货币是区块链技术的产物,其鼻祖就是比特币,随着 2009 年比特币诞生以来&a…

背景知识

了解数字货币的朋友肯定都知道助记词是什么,丢失意味着什么,为了让不了解的朋友也能愉快的读完本文,我简单介绍下;

数字货币是区块链技术的产物,其鼻祖就是比特币,随着 2009 年比特币诞生以来,通过在其基础上改进和创新,已经形成了越来越多的新的数字货币类型,目前已经超过 6000+ 种;数字货币的交易一般是用币安、Coinbase 等中心平台化交易所,或者去中心化交易所(DEX),长期保存一般是用加密钱包;

助记词是一种安全机制,用于生成和恢复加密钱包,可以说是保险箱 + 钥匙、是银行卡 + 密码。

事故起因

事情就是这么个事情,助记词丢了,又没完全丢,如果找不回来的话,损失万元以上,当然了和当初抄币被割的钱来说,不算什么了,不过仍然不爽啊。

那是 21 年时候,偶然接触区块链,数字货币这些概念,基于了解学习的心态,购入了几种数字货币,后来就放入了加密钱包中,并且生成了助记词,写到了一张纸上,保存了下来。
在这里插入图片描述

在这里插入图片描述

时间过去了这么久,中间也经历了换手机等操作,最近闲来无事就从应用市场下载了一个加密钱包,准备还原下钱包,看看当时购买的数字货币现在还有没有价值,于是找到小纸条(还好没弄丢),尝试导入,没想到提示 ”非法助记词,请检查“ ,我瞬间懵逼了,难道手抄抄错单词了,反复检查后,终于定位到了原因;

本来 12 位的单词,我竟然只抄下来了 11 位,缺少了一个单词,是没法还原钱包的,想想可能的大几万资产,我真是欲哭无泪,躺在床上翻来覆去睡不着,实在不甘心呀,于是抱着最后的希望打开谷歌,看看有没人遇到类似的情况的,经过一番查找,终于找到了线索,预计缺少一个助记词的情况下,暴力破解,可能的助记词组合大概有 2048 * 12 = 24576 种,那就是说理论上只要一个个尝试,还是可以找回的,算是有了点希望,想到这个总算平静了下来。

找回助记词

第二天早早的起床收拾好,开始研究了起来,首先从助记词的生成原理开始了解,助记词一般由 BIP39 协议生成,这是一个在加密领域广泛应用的标准,它的主要目的是将种子随机数(seed)转换成易于记忆和记录的单词序列,从而帮助用户安全地备份和恢复他们的钱包。

BIP39 协议中共收录了 2048 个单词,所以我缺失的那个单词肯定在其中,另外因为我不知道该单词在我的助记词中的顺序,所以说是 2048 * 12 = 24576 种可能的组合,有没有可能再缩小下范围呢?

助记词生成规则:

  1. 创建一个128到256位的随机序列(熵)。

  2. 提出SHA256哈希前几位(熵长/ 32),就可以创造一个随机序列的校验和

  3. 将校验和添加到随机序列的末尾。

  4. 将序列划分为包含11位的不同部分。

  5. 将每个包含11位部分的值与一个已经预先定义2048个单词的字典做对应。

  6. 生成的有顺序的单词组就是助记码。

在这里插入图片描述

通过助记词的创建规则,可以看到一个检验和的概念,它是一个计算机术语,在BIP39助记词的背景下它的主用是保证助记词序列的一致性和有效性,如果随机挑选12个单词,这些单词极可能不符合原始随机数和校验和的正确组合,因此不满足BIP39的校验规则

也就是说如果完全随机生成的话, 2048 * 12 = 24576 种理论组合中,应该有很大一部分是无效的组合,这样就能大大缩小范围了,果然官方提供了 validateMnemonic 函数校验助记词有效性, 让我们先写一段代码来测试下:

const bip39 = require('bip39') // BIP-39库
const knownWords = ['success', 'hamster', 'scan', 'pool', 'sausage', 'nasty', 'dose', 'melody', 'later', 'display', 'file',
] // 假设已知的11个词如下const wordlist = bip39.wordlists.english // 使用英文词汇表
const result = []// missingWordIndex 为丢失的助记词位置索引
function findWord(missingWordIndex) {for (let word of wordlist) {// 构建带有猜测词的完整助记词let tryMnemonic = [...knownWords]tryMnemonic.splice(missingWordIndex, 0, word)// 检查这个组合是否有效if (bip39.validateMnemonic(tryMnemonic.join(' '))) {result.push(tryMnemonic.join(' '))}}
}for (let i = 0; i < 11; i++) {findWord(i)
}console.log(`找到有效助记词: ${result.length}`)
console.log(result)

在这里插入图片描述

执行后发现,共有 1401 个有效的组合,从 24576个缩小范围到 1401个,成果喜人呀,我甚至开心的拿着手机手动一个个尝试导入看看,花了一个小时导入了 100个,热情渐渐湮灭,手也酸了,眼也花了,还是没碰到正确的那一个,导入的钱包资产都是 0;

还有没有进一步缩小范围,最好能直接精准定位到钱包地址的方法呢?等等,钱包地址!!我之前的邮件里好像有加密钱包地址的信息,是一串 hash 字符串 0x67DxxxxxxxxxxxxxxxxxxxxxxxxD84F,如果能通过助记词批量计算出对应的钱包地址,不就可以精确匹配了,研究一番后,发现果然可行的,基本流程是:

  1. 从助记词生成种子,种子是一段二进制字符,是生成私钥和公钥的基础
  2. 从种子生成 hdk 密钥,它包含私钥和公钥信息
  3. 根据特定规则从密钥生成钱包地址,针对不同的加密货币和区块链网络,这个过程可能有所不同,因为不同的网络可能使用不同的算法和标准来生成地址。例如,比特币和以太坊就有不同的地址生成方法。

在这里插入图片描述

最终代码如下:

const bip39 = require('bip39') // BIP-39 库
const { hdkey } = require('ethereumjs-wallet')const knownWords = ['success', 'hamster', 'scan', 'pool', 'sausage', 'nasty', 'dose', 'melody', 'later', 'display', 'file',
] // 假设已知的11个词如下const wordlist = bip39.wordlists.english // 使用英文词汇表
const targetAddress = '0x67DxxxxxxxxxxxxxxxxxxxxxxxxD84F' // 目标地址async function getBSCAddressFromMnemonic(mnemonic) {const seed = await bip39.mnemonicToSeed(mnemonic)const hdk = hdkey.fromMasterSeed(seed)const addrNode = hdk.derivePath("m/44'/60'/0'/0/0")const wallet = addrNode.getWallet()return `0x${wallet.getAddress().toString('hex')}`
}// 参数为丢失的助记词位置索引
async function findWord(missingWordIndex) {for (let word of wordlist) {// 构建带有猜测词的完整助记词let tryMnemonic = [...knownWords]tryMnemonic.splice(missingWordIndex, 0, word)let mnemonic = tryMnemonic.join(' ')// 检查这个组合是否有效if (bip39.validateMnemonic(mnemonic)) {let address = await getBSCAddressFromMnemonic(mnemonic)if (address === targetAddress) {console.log(`位置 ${missingWordIndex} 找到匹配的助记词:`, mnemonic)return}}}console.log(`位置 ${missingWordIndex} 未找到匹配的助记词。`)
}for (let i = 0; i < 12; i++) {findWord(i).catch(console.error)
}

在这里插入图片描述

终于,丢失的助记词,找回来了!

在这里插入图片描述

总结

如果你的资产在银行里,忘记密码还可以通过平台来找回,这是银行这种中心化机构的优势, 可是对于去中心化的加密货币来说,丢失助记词,就意味着丢失了对账户的控制权,并且没有人能帮你找回,所以一定要慎重对待;

助记词不要联网,最好手抄并验证下,我就是当初抄写完后,没有验证,导致丢失了一个单词都不知道,所幸的是仅仅丢失了一位, 其余的 11 个单词都在并且顺序正确,所以才可以通过穷举法来找回来,如果丢失的更多,估计神仙也没办法了。


交流 v: t1452030 (备注来源)

首发链接:https://juejin.cn/post/7311882547687784500

http://www.dtcms.com/wzjs/534854.html

相关文章:

  • 网站群建设意见征集主题字体wordpress
  • 帮网站做推广赚钱wordpress 值得买主题
  • 中企动力官网 网站建设电影网站赚钱
  • 手机wap网站 php做美缝在哪个网站接单
  • 大型网站服务器价格软文写作服务
  • 做淘客网站需要营业执照吗有服务器自己怎么做网站
  • 小门户网站模版网页微信版可以加入腾讯会议吗
  • 商城建站系统wordpress xmlrpc api
  • 网站做营销推广公司学习建设网站
  • 网站编辑是个长期做的工作吗呼家楼网站建设
  • 手机端建站网站开发难不难学
  • 广州企业网站模板建站自在源码网
  • 提供信息门户网站制作网站底部版权代码
  • 什么是网站的权重wordpress 免邮箱
  • 外贸网站搭建wordpress做淘宝的交流插件
  • 网站营销公司哪家好个人博客系统源码
  • php网站游客试用怎么做亚马逊跨境电商入门完整教程
  • 自己做的网站添加域名手机电商平台有哪些
  • 深圳医疗网站建设报价外贸企业网站建设一条龙
  • jsp 响应式网站模板摄影设计素材
  • 广州网站开发外包哪家好教做发绳的网站
  • 莱芜网站建设开发公司网站怎么能在百度搜到
  • ps联盟网站免费建站平台的源码
  • 做软装平台网站wordpress 搜索调用
  • 贵阳品牌网站建设公司企业网站加视频
  • 南湖区建设街道办事处网站微信官方小程序开发工具
  • 网站建设过程有哪几个阶段科技网站建设分析
  • 免费打广告网站网络营销包括的主要内容有
  • 山西省住房与城乡建设部网站北京做彩右影影视公司网站
  • 深圳网站设计很棒 乐云践新做交易网站存在什么风险