文档章节

Base58编码简介

LinkerLin
 LinkerLin
发布于 2013/06/27 23:10
字数 265
阅读 3302
收藏 18

Base64是很多人熟知的一种编码。

在URL传输领域,还有类似的Base32编码。这个编码去掉了一些特殊字符,只留下了大写字母和数字。

本文要讨论的是Base58, 故其 基 是58个字母和数字组成,如下:

ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

注意,少了数字0,大写字母I,大写字母O,小写字母l,一共是:

10+26×2-4=58

这个编码到底比前面两种好在那里呢?

首先,是好阅读,没有容易混淆的字母和数字。

第二,这个编码是一个混淆编码,看上去像Base64,但是其实不是。编码效率又高于Base32。

因此很适合用于抗自动监视的传输系统的底层编码机制。虽然基于概率模型的系统很容易识别出Base58,但是考虑到,基于概率模型的系统的巨大的计算和存储开销。监视TCP报文中Base58编码的数据流在目前是很难实现的。

 

 

 

© 著作权归作者所有

共有 人打赏支持
LinkerLin

LinkerLin

粉丝 71
博文 63
码字总数 14069
作品 1
长宁
程序员
私信 提问
加载中

评论(4)

顺时针炒股软件
Base94编码,压缩效果更高,也很好毒。
gotham
gotham
这个挺好,base64在网页传的时候,有时候是有多余的字符。
南湖船老大
南湖船老大
思路不错,不知楼主知道“奥巴码”不?类似base64的一种编码方式
kiwivip
kiwivip
简介...
『学概念找员外』Base58编码与Base58Check编码

员外之前听过的编码格式要么是 Base32编码,要么是 Base64编码,今天发现还有个 Base58编码,着实让员外吃了一大惊,所以拉出来写写。还有就是员外写了这么多文章,从来没有飚过代码,这篇文...

刘员外__
07/30
0
0
区块链 100 讲:16 进制数据的编码 / 解码算法

众所周知,计算机存储和处理的都是二进制数据。为了简洁,实际上使用最多的是二进制的一个变种--16进制。比如笔者的名字叫嘉文,中文拼音是jiawen(全小写),在计算机里存储的就是 6A696177...

yanyan
07/10
0
0
007-050-越写越快乐之浅谈Base58Check的使用

今天的越学越快乐系列文章给大家分享一下Base58Check的使用,也就是比特币地址的生成过程中使用的校验函数。 Base58是什么 我们都知道要想生成一个比特币地址,需要有以下几步: 私钥k生成公...

韬声依旧在路上
09/07
0
0
区块链之公钥、私钥、地址之间的关系

一句话解释公钥、私钥、地址 私钥:实际上是一组随机数,关于区块链中的随机数我们已经介绍过了 公钥:对私钥进行椭圆曲线加密算法生成,但是无法通过公钥倒推得到私钥。公钥的作用是在和对方...

JouyPub
09/12
0
0
揭秘比特币和区块链(三):比特币的私钥、公钥与地址

地址、交易、区块、网络是区块链数据里面最基本最重要的概念。地址用来标示一笔交易的支出方和接收方。所有的交易最终需要被记到统一的账本——区块链上,而这个账本是通过区块确认并完成的。...

雪花又一年
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
今天
2
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
1
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
2
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
2
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部