区块链-公钥生成地址

目录:http://www.noobyard.com/article/p-wsvjczhq-ey.html算法

比特币(区块链)地址是一个由数字和字母组成的字符串。由公钥(一个一样由数字和字母组成的字符串)生成的比特币地址以数字“1” 开头。好比:安全

1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy

地址可由公钥通过单向的加密哈希算法获得。哈希算法是一种单向函数, 接收任意长度的输入产生指纹或哈希。由公钥生成比特币地址时使用的算法是 SecureHashAlgorithm(SHA)和 theRACEIntegrityPrimitivesEvaluationMessageDigest(RIPEMD),具体地说是 SHA256 和 RIPEMD160函数

SHA256是安全散列算法SHA(Secure Hash Algorithm)系列算法之一,其摘要长度为256bits,即32个字节,故称SHA256。SHA系列算法是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数,包括 SHA-一、SHA-22四、SHA-25六、SHA-384 和 SHA-512 等变体。区块链

RIPEMD(RACE原始完整性校验讯息摘要)是一种加密哈希函数,由鲁汶大学Hans Dobbertin,Antoon Bosselaers 和 Bart Prenee组成的COSIC 研究小组发布于1996年。 RIPEMD是以MD4为基础原则所设计的 ,并且其表现与更有名的SHA-1相似。编码

以公钥K做为输入,计算SHA256哈希值,在以此结果做为输入计算RIPEMD160哈希值。获得一个160位(20字节)的数字。加密

                                A=RIPEMD160(SHA256(K)),其中K是公钥,A是地址。lua

平时看见的地址是通过Base58Check编码的。.net

下图是摘自《精通比特币》中的地址生成过程。设计