• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链
您的位置:首页 > 网络安全 >区块链 > 小蚁NEO钱包账号创建原理解析

小蚁NEO钱包账号创建原理解析

作者:neostar 字体:[增加 减小] 来源:互联网 时间:2018-11-03

neostar向大家分享了小蚁NEO钱包账号创建原理解析,其中包含小蚁钱包,NEO钱包等知识点,遇到此问题的同学们可以参考下
neo 区块链钱包账号

钱包账号

neo钱包主要包括address,privateKey,publicKey,scriptHash,WIF这几个部分;它们之间存在一定的转化关系:

NEP<=>WIF <=> Private => Public => ScriptHash <=> Address

不开玩笑,除了 address 可以告诉别人以外,其它的对谁都不要说,address类似一个银行卡号,是别人想给你转账的时候使用的

创建钱包账号


import { wallet } from '@cityofzion/neon-js';

/**
* 根据passpase生产一个新的neo账号
* @param {*} passphase
* @param {*} confirmPassphase
* @param {*} wif
*/
export function createWalletAccount(passphase: string, confirmPassphase: string, wif?: string): ?WalletAccount {

if (passphase !== confirmPassphase) return null;

var account = new wallet.Account(wif || wallet.generatePrivateKey());
const encryptedWIF = wallet.encrypt(account.WIF, passphase);

const result: WalletAccount = {
address: account.address,
privateKey: account.privateKey,
publicKey: account.publicKey,
scriptHash: account.scriptHash,
WIF: account.WIF,
encryptedWIF,
passphase,
}

return result;
}

创建钱包账号单元测试

通过jest对创建钱包的方法进行单元测试

test('createWalletAccount ', () => {
const passphase = '123456';
const account = createWalletAccount(passphase, passphase);
console.log(account);
expect(account.address !== null).toBe(true);
});

运行结果如下所示,就是当前生成的账号信息,可以使用neo-wallet登录一下试试。

{
address: 'AUMgtJsw3kBrcA7poBYNaonZTGMNoqZNLy',
privateKey: '10bb026b4015c481f0b5142aa5de36de40a99fc8c26e956011a3f820f7708fba',
publicKey: '03af2ad8725c4926632d6816f5502d8f749dec369afadfe0bb5ac697fe22a0ef77',
scriptHash: 'a8f677c132f2c82d73ff138e817e784c25ab068a',
WIF: 'KwnETPM2m8wTAY3qySvDVLf3Vpfg77nvJhxR2Qyi8uMWKoqP1Q3f',
encryptedWIF: '6PYVHykkA1TfyQ2344wftv5e7vRoecV4iVwEVZ62aqCAx3dh3LDrRV19AS',
passphase: '123456'
}

转化

正如前面所述的,钱包里的各个数据存在一定的转化关系,至于详细的相互之间转化的原理,先不至讨论,我们可以使用neon-js的相关API来查看是否正确转化。

NEP<=>WIF <=> Private => Public => ScriptHash <=> Address

下面先新建一个jtest的单元测试文件Core.spec.js

私钥到公钥的转化

这里使用上面生成的测试账号进行测试,注意因为是测试账号以后我不会再使用,所以暴露出来,如果是你的个人账号,请一定不要暴露WIF以及privateKey。

单元测试代码如下:

import {wallet} from '@cityofzion/neon-js';

test('private:10bb026b4015c481f0b5142aa5de36de40a99fc8c26e956011a3f820f7708fba get PUb_Key',()=>{
const pubKey = wallet.getPublicKeyFromPrivateKey('10bb026b4015c481f0b5142aa5de36de40a99fc8c26e956011a3f820f7708fba');
expect(pubKey).toBe('03af2ad8725c4926632d6816f5502d8f749dec369afadfe0bb5ac697fe22a0ef77');
});

使用命令运行单元测试:

npm run test __test__/neo/Core.spec.js

运行结果:

所有转化

完整的转化关系如下:

import {wallet} from '@cityofzion/neon-js';

const walletAccount = {
address: 'AUMgtJsw3kBrcA7poBYNaonZTGMNoqZNLy',
privateKey: '10bb026b4015c481f0b5142aa5de36de40a99fc8c26e956011a3f820f7708fba',
publicKey: '03af2ad8725c4926632d6816f5502d8f749dec369afadfe0bb5ac697fe22a0ef77',
scriptHash: 'a8f677c132f2c82d73ff138e817e784c25ab068a',
WIF: 'KwnETPM2m8wTAY3qySvDVLf3Vpfg77nvJhxR2Qyi8uMWKoqP1Q3f',
encryptedWIF: '6PYVHykkA1TfyQ2344wftv5e7vRoecV4iVwEVZ62aqCAx3dh3LDrRV19AS',
passphase: '123456'
};

// WIF <=> privateKey
te

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 小蚁NEO钱包账号创建原理解析

相关文章

  • 2018-11-03稳定币的不稳定性
  • 2018-11-03不到 50 行的 Python 代码构建最小的区块链
  • 2018-11-03备受争议的脑钱包(Brainwallet)
  • 2018-11-03如何实现可升级的智能合约?
  • 2018-11-03闪电网络的历史:从一个概念到落地测试
  • 2018-11-03Po.et一个基于数字媒体资产的区块链共享账本
  • 2018-11-03p2p网络的搜索技术简介
  • 2018-11-03NeuronVisor框架的威胁及防御
  • 2018-11-03以太坊交易的生命周期
  • 2018-11-03MongoDB集群实战攻略

文章分类

  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链

最近更新的内容

    • 几张简单的图就揭示了整个区块链世界
    • 比特币黄金(BTG) 比特币2M分叉(B2X)分币完全指南
    • 公有链私有链的合作基点可能近在咫尺
    • 区块链电子猫-CryptoKitties完全攻略
    • 基于机器学习的可扩展HCGraph算法
    • 区块链运作的七个核心技术
    • 如何学习区块链
    • 云储币(SC)钱包使用教程
    • 5分钟了解Plasma
    • “三权分立”模型的概述

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有