BItCoin源码解析(1)——Base58编码

本文深入探讨比特币加密技术,包括非对称加密算法(椭圆曲线)和哈希算法(SHA256,RIMPED160),阐述比特币私钥、公钥、公钥哈希值及地址的生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了https://blog.youkuaiyun.com/pure_lady/article/category/5858993/2好久,决定写下开篇。

比特币加密算法一共有两类:非对称加密算法(椭圆曲线加密算法)和哈希算法(SHA256,RIMPED160算法)。比特币私钥(private key),公钥(public key),公钥哈希值(pubkeyhash),比特币地址(address)
公钥和私钥由椭圆曲线加密算法生成,私钥可推出公钥而反之不能,这也是这篇文章后半部分要隆重介绍的部分。
有了私钥,你就可以对文本签名。别人拿了你的公钥就可以根据签名认证你是否拥有私钥。这就是证明你拥有存款的办法。
为了安全起见,公钥应该隐藏起来。所以对公钥进行哈希加密,生成公钥哈希值然后计算哈希值的比特币地址:
公钥哈希值=RIMPED160(SHA256(公钥))
比特币地址=*1*+Base58(0+公钥哈希值+校验码)
校验码=前四字节(SHA256(SHA256(0+公钥哈希值)))

--------------------- 摘自https://blog.youkuaiyun.com/tiandiwuya/article/details/79571639?utm_source=copy

这里的Base58是Base58 编码而不是常用的Base64算法。

base58和base64一样是一种二进制转可视字符串的算法,主要用来转换大整数值。区别是,转换出来的字符串,去除了几个看起来会产生歧义的字符,如 0 (零), O (大写字母O), I (大写的字母i) and l (小写的字母L) ,和几个影响双击选择的字符,如/, +。结果字符集正好58个字符(包括9个数字,24个大写字母,25个小写字母)。不同的应用实现中,base58 最后查询的字母表可能不同,所以没有具体的标准,BitCoin中用的如下:

1~9: 9个(不包含数字0)

a~z(剔除小写的 L ):25个(注意包含了小写的 o)

A~Z(剔除 大写的O 大写的I  ) 24个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值