https://github.com/bitcoinbook/bitcoinbook/blob/second_edition/code/key-to-address-ecc-example.py

这个适用于py3.0+版本。

import bitcoin# Generate a random private key
valid_private_key = False
while not valid_private_key:private_key = bitcoin.random_key()decoded_private_key = bitcoin.decode_privkey(private_key, 'hex')valid_private_key = 0 < decoded_private_key < bitcoin.Nprint("Private Key (hex) is: ", private_key)
print("Private Key (decimal) is: ", decoded_private_key)# Convert private key to WIF format
wif_encoded_private_key = bitcoin.encode_privkey(decoded_private_key, 'wif')
print("Private Key (WIF) is: ", wif_encoded_private_key)# Add suffix "01" to indicate a compressed private key
compressed_private_key = private_key + '01'
print("Private Key Compressed (hex) is: ", compressed_private_key)# Generate a WIF format from the compressed private key (WIF-compressed)
wif_compressed_private_key = bitcoin.encode_privkey(bitcoin.decode_privkey(compressed_private_key, 'hex'), 'wif')
print("Private Key (WIF-Compressed) is: ", wif_compressed_private_key)# Multiply the EC generator point G with
# the private key to get a public key point
public_key = bitcoin.fast_multiply(bitcoin.G, decoded_private_key)
print("Public Key (x,y) coordinates is:", public_key)# Encode as hex, prefix 04
hex_encoded_public_key = bitcoin.encode_pubkey(public_key, 'hex')
print("Public Key (hex) is:", hex_encoded_public_key)# Compress public key, adjust prefix depending on whether y is even or odd
(public_key_x, public_key_y) = public_key
if (public_key_y % 2) == 0:compressed_prefix = '02'
else:compressed_prefix = '03'
hex_compressed_public_key = compressed_prefix +\bitcoin.encode(public_key_x, 16)
print("Compressed Public Key (hex) is:", hex_compressed_public_key)# Generate bitcoin address from public key
print("Bitcoin Address (b58check) is:", bitcoin.pubkey_to_address(public_key))# Generate compressed bitcoin address from compressed public key
print("Compressed Bitcoin Address (b58check) is:",bitcoin.pubkey_to_address(hex_compressed_public_key))

(转)《精通比特币》原码分析:公钥、私钥、比特币地址相关推荐

  1. C正数负数的原码补码反码以及内存地址分析

    #include<stdio.h> void swap(int a, int b); void main1(){int i = 10; //正数的原码 00000000 00000000 ...

  2. LinkedList原码分析(基于JDK1.6)

    <Java集合类>一文中已经最List的基本操作进行说明,并且比较了ArrayList和LinkedList的效率.本文将进一步解析LinkedList. LinkedList也和Arra ...

  3. 探索比特币源码5-私钥

    经过一段时间的积累,终于来到了比特币源码阅读的环节.还是按照之前的节奏,我们就比对着精通比特币一书的进度,进行源码的阅读. 对于此文,只需你对比特币系统中私钥-公钥-地址的产生及关系有最基本的了解 因 ...

  4. 探索比特币源码7-哈希

    在之前的两篇文章中,我们已经大致了解了私钥和公钥相关的代码: 探索比特币源码5-私钥 探索比特币源码6-公钥 接下来,我们打算阅读生成比特币地址的相关代码. 比特币地址的生成过程中,涉及了哈希函数的计 ...

  5. 原码除法运算(计算机组成原理19)

    原码除法运算 视频链接地址: https://www.bilibili.com/video/BV1BE411D7ii?from=search&seid=6420326887479343502 ...

  6. cl.zk0.info/index.php,兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建

    原标题:兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建 btcpool矿池-测试环境搭建及使用cgminer测试 本文档基于Ubuntu 16.04 LTS, 64 Bits. 安装Bi ...

  7. FPGA学习之路—应用程序—原码二位乘法器及Verilog代码分析

    FPGA学习之路--原码二位乘法器及Verilog代码分析 原理 原码乘法可以分为原码一位乘和原码二位乘,两者在实现规则上大同小异.原码一位乘每次判断乘数的最低位,对被乘数和部分积进行相应操作.而原码 ...

  8. 动态代理原理源码分析

    看了这篇文章非常不错转载:https://www.jianshu.com/p/4e14dd223897 Java设计模式(14)----------动态代理原理源码分析 上篇文章<Java设计模 ...

  9. Linux内核 eBPF基础:kprobe原理源码分析:源码分析

    Linux内核 eBPF基础 kprobe原理源码分析:源码分析 荣涛 2021年5月11日 在 <Linux内核 eBPF基础:kprobe原理源码分析:基本介绍与使用>中已经介绍了kp ...

  10. Linux内核 eBPF基础:kprobe原理源码分析:基本介绍与使用示例

    Linux内核 eBPF基础 kprobe原理源码分析:基本介绍与使用示例 荣涛 2021年5月11日 kprobe调试技术是为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术. 利用kpro ...

最新文章

  1. android平台 arcgisr_第一个基于ArcGIS的Android应用
  2. 飞鸽传书联系企业内部管理机制
  3. Kmeans CUDA
  4. chrome浏览器开发者模式header请求参数“Request Payload“找不到的问题
  5. 视图可以修改表数据吗_Excel-数据透视表、数据透视图
  6. 我国计算机网络发展水平,计算机网络发展
  7. 几种支持动作模型格式的比较(MD2,MD5,sea3d) 【转】
  8. 后缀表达式/逆波兰表达式
  9. 获取GridView的BoundField值
  10. 【转】多态与 new [C#]
  11. ubuntu20.04+vtd环境搭建
  12. 工业级Pass云平台SpringCloudAlibaba综合项目实战(二):解决方案和工作效率
  13. windows下如何安装ipython_Windows下IPython安装
  14. 努比亚 Z17 mini s (Nubia NX589J) 解锁BootLoader 并刷入recovery ROOT
  15. python怎么变成竖行_用python实现古诗词横板竖版显示 【二维列表的使用】
  16. 移动应用中的AR开发,6款最受欢迎工具推荐
  17. 华为鸿蒙OS5摄概念机,华为P50Pro概念图:首发鸿蒙OS,后置5摄能让iPhone12甘拜下风吗...
  18. mysql 漏洞 wa_[漏洞案例]thinkcmf 2.x从sql注入到getshell实战
  19. ANSYS Workbench远端位移边界条件的解析
  20. windows2008 没有本地用户和组

热门文章

  1. mmap和MappedByteBuffer
  2. Office 2013集成SP1
  3. JavaScript编程风格 (share)
  4. 新起点、新目标--获得MVP后的感悟
  5. 避重就轻:Intel的垄断抗辩
  6. 还原精灵密码算法分析
  7. 编程开发之--正则表达式
  8. spring-第四篇之让bean获取所在的spring容器
  9. CodeForces - 788B Weird journey 欧拉路
  10. SQL中的join的详细用法!inner join,full outer join,left join,right jion