比特币加入了改进版的 Base58 算法—-base58check,主要为了解决 Base58 导出的字符串没有校验机制,这样,在传播过程中,如果漏写了几个字符,会检测不出来。所以使用了改进版的算法 Base58Check。校验和是从编码的数据的哈希值中得到的,可以用来检测并避免转录和输入中产生的错误。使用B……
Continue reading
一、base58编码原理 Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。base58和base64一样是一种二进制转可视字符串的算法,主要用来转换大整数值。区别是,转换出来的字符串,去除了几个看起来会产生歧义的字符,如 0 (零), O……
Continue reading
很多人为了保持自己软件开发的劳动成果会给软件增加license授权功能。该授权可以是离线版的,也可能是在线版的(被授权者和授权者之间有交互)。根据授权长短维度区分有试用版(15天、1月)、有限期限版(1年1授权)、终身版。 一、离在线授权 1、离线授权 很多比较小的软件,没有专门的授权……
Continue reading
一、发展背景 加密安全技术在20世纪80年代至21世纪初,得到了广泛发展,其中的哈希加密、椭圆曲线密码学、HashCash工作量证明机制,以及P2P网络,为区块链的产生和兴起奠定了技术基础。本篇会通过与传统数据库的对比、区块链使用的底层技术、去中心化的误区等相关层面了解区块链技术。……
Continue reading
一、前言 区块链从2009年1月3日比特币的诞生到如今已过了10个年头,但今年似乎特别的火。从本篇开始,我决定写一系列和区块链相关的博文。其中前面会涉及一些比较有趣的解释性的理论内容,后面会考虑一些技术相关的内容。 二、区块链是什么? 一个简单性总结:区块链就是一个去中心化的分布式的记……
Continue reading
一、环境及其他 本篇是接很早之前写的一篇 《使用ssldump解密https数据包》,当时在 F5 上测试成功后,在外部搭建了一个https的web应用,再使用私钥解包时,发现只能看到握手包,看不到实际解包后的东西。刚好最近有网友在咨询该问题,就又空下心思再研究了下该问题。这里记录下最终解……
Continue reading
1、查看linux的硬件设施:在终端下输入 1uname -a 2输出结果:Linux kylin 4.4.58-20190505.kylin.server-generic #kylin SMP Sun May 5 16:57:43 CST 2019 aarch64 aarch64 aarch64 GNU/Linux 从结果可以看出它的硬件设施为aarch64,这个硬件也是属于ARM的。关于如何在arm架构下安装anaconda,我向我朋友请教过一下,得到了两个结果: 一个是miniconda3(ht……
Continue reading
熟悉Python的都知道管理各种库有时候是多么痛苦的一件事!而有了conda包管理器,让库的安装和管理变得方便了不少。开发过程中,为了解决包的安装和管理问题,也方便用户安装,可以构建自己的conda包,并上传到Anaconda Cloud。 所需文件 操作之前,需要先安装conda-b……
Continue reading
该情况适用于如下两种类型环境下:1、禁止连接内网大部分主机,但有个别主机开放连接,想通过该链接打开内网的远程桌面、vnc、http页面等情况;2、远程服务器大部分没有公网,但其中有一条主机有公网连接,又不想搭建VPN,想通过该公网主机进行简单代理,实现对内部各应用或平台的管理。这……
Continue reading
在分布式架构中经常需要要使用到唯一的ID值,该ID值的生成一般会要求:全局唯一性、递增性、高可用性、高性能性。这时候常见的方法有使用UUID和雪花算法实现ID两种机制。UUID这个比较好理解,在linux下/etc/fstab中我们经常就会用uuid=xxx代表某个分区。而雪花算……
Continue reading