自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我不是大牛

老白程序员,咱们一起飞~

  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

转载 etcd - 一个分布式一致性键值存储系统

etcd - 一个分布式一致性键值存储系统etcd是一个分布式一致性键值存储系统,用于共享配置和服务发现,专注于:简单:良好定义的,面向用户的API (gRPC)安全: 带有可选客户端证书认证的自动TLS快速:测试验证,每秒10000写入可靠:使用Raft适当分布etcd是Go编写,并使用Raft一致性算法来管理高可用复制日志,架构如下图所示:下载安装$ mk...

2018-05-30 22:10:52 975

原创 Golang和Ethereum中的big.Int

big.Int是golang提供的数据类型,用来处理比较大的整型数,当然它也可以处理诸如64bit,32bit的常用整数。# /go-1.x/src/math/big/int.go package big type Int struct { neg bool // sign, whether negaive abs nat // absolute va...

2018-05-30 22:09:53 4038

原创 etcd 多台服务器集群

etcd 多台服务器集群下载安装 etcd$ mkdir -p $GOPATH/src/github.com/coreos$ cd !$$ git clone https://github.com/coreos/etcd.git$ cd etcd$ ./build启动服务每个节点都要执行以下配置,HOST_1、HOST_2、HOST_3 分别设置为多台服务器的I...

2018-05-30 22:03:53 1787

原创 go-ethereum环境搭建及目录结构介绍

go-ethereum代码阅读环境搭建Ubuntu 16.04 64bit/Mac安装GO配置环境变量(GOROOT, GOPATH, GOBIN)下载源码:$ cd $GOPATH; $ mkdir src$ cd src #进入go项目目录,创建src目录, 并进入src目录$ git clone https://github.com/ethereum/go-...

2018-05-30 22:02:27 1740

转载 通过 PhxPaxos 了解 Paxos 原理

通过 PhxPaxos 了解 Paxos 原理Prepare阶段Prepare// src/algorithm/proposer.cppvoid Proposer :: Prepare(const bool bNeedNewBallot){ PLGHead("START Now.InstanceID %lu MyNodeID %lu State.ProposalI...

2018-05-27 19:38:51 325

原创 一致性算法- Paxos

一致性算法- PaxosPaxos是一种基于消息传递的分布式一致性算法,由Leslie Lamport(莱斯利·兰伯特)于1990提出。是目前公认的解决分布式一致性问题的最有效算法之一。Paxos 是什么Paxos协议是一个解决分布式系统中,多个节点之间就某个值(提案)达成一致(决议)的通信协议。它能够处理在少数节点离线的情况下,剩余的多数节点仍然能达成一致。概念定义Pro...

2018-05-27 19:37:27 466

转载 用 Go 语言实现 Raft 选主

用 Go 语言实现 Raft 选主选主模块主要包括三大功能:candidate状态下的选主功能leader状态下的心跳广播功能follower状态下的确认功能candidate状态下的选主功能candidate状态下的选主功能需要关注两个方面:何时进入candidate状态,进行选主?选主的逻辑是怎样的?首先,来讨论何时进入candidate状态,进行选主。...

2018-05-24 20:32:37 2261 5

转载 Raft 集群成员变更、日志压缩、客户端交互

Raft 集群成员变更、日志压缩、客户端交互集群成员变更在集群服务器发生变化时,不能一次性的把所有的服务器配置信息从老的替换为新的,因为,每台服务器的替换进度是不一样的,可能会导致出现双主的情况,如下图:如上图,Server 1和Server 2可能以 Cold 配置选出一个主,而Server 3,Server 4和Server 5可能以 Cnew 选出另外一个主,导致出现双主。...

2018-05-24 20:31:59 1361 1

转载 一致性算法 - Raft

一致性算法 - RaftRaft 状态一个 Raft 集群包含若干个服务器节点;通常是 5 个,这允许整个系统容忍 2 个节点的失效,每个节点处于以下三种状态之一:follower(跟随者) :所有结点都以 follower 的状态开始。如果没收到 leader消息则会变成 candidate状态。candidate(候选人):会向其他结点“拉选票”,如果得到大部分的票则成为lea...

2018-05-24 20:30:52 5417

转载 拜占庭将军问题与中本聪

拜占庭将军问题很多人可能听过,但不知道是什么意思,本文从非专业的角度来讲讲,拜占庭将军问题到底是说什么的。拜占庭将军问题(Byzantine Generals Problem),首先由Leslie Lamport与另外两人在1982年提出,很简单的故事模型,却困扰了计算机科学家们数十年。故事大概是这么说的:拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙...

2018-05-23 22:19:10 404 1

原创 两种拜占庭算法

方法一:package mainimport ( "fmt" "time")var ch = make(chan string)var t=[4]int{1}func aa(cnt int){ for i:=0;i<4;i++{ if i!=cnt { t[i] = t[cnt]+t[i] ...

2018-05-23 22:16:48 1890 1

原创 其他的拜占庭算法

其他的拜占庭算法dBFT(delegated BFT )授权拜占庭容错算法小蚁采用的dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识,此算法在PBFT基础上进行了以下改进:将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;为共识参与节点的产生设计了一套基于持有权益比例的投票机...

2018-05-23 22:10:29 1250

转载 共识算法-BFT

共识算法-BFT什么是 BFTBFT( Byzantine Fault Tolerance)称为 拜占庭容错。拜占庭容错技术是一类分布式计算领域的容错技术。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。拜占庭将军问题拜占庭容错技术来...

2018-05-23 22:07:14 14078

转载 使用 go 实现 Delegated Proof of Stake 机制

使用 go 实现 Delegated Proof of Stake 机制DPoS的伪代码实现for round i //分成很多个round,round无限持续 dlist_i = get N delegates sort by votes //根据投票结果选出得票率最高的N个受托人 dlist_i = shuffle(dlist_i) //随机改变顺序 loop /...

2018-05-22 23:00:06 486

转载 使用 go 实现 Proof of Stake 共识机制

使用 go 实现 Proof of Stake 共识机制什么是 Proof of Stake在PoW中,节点之间通过hash的计算力来竞赛以获取下一个区块的记账权,而在PoS中,块是已经铸造好的,铸造的过程是基于每个节点(Node)愿意作为抵押的令牌(Token)数量。如果验证者愿意提供更多的令牌作为抵押品,他们就有更大的机会记账下一个区块并获得奖励。实现 Proof of Sta...

2018-05-22 22:58:27 716

转载 sha256 加密算法

sha256 加密算法go 调用 sha256 加密字符串哈希值package mainimport( "fmt" "crypto/sha256" "io" "log" "os")func main() { // 第一种调用方法 sum := sha256.Sum256([]byte("hello world\.

2018-05-21 23:16:30 14581

转载 md5加密算法原理及其GO语言实现

md5加密算法原理及其GO语言实现MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash value),用于确保信息传输完整一致。go 调用 md5 方法新建 md5.go 文件,代码如下:package mainimport( "fmt" ...

2018-05-21 23:15:52 863

原创 分组密码的调用

分组密码的调用CBCpackage mainimport ( "bytes" "crypto/cipher" "crypto/aes" "encoding/base64" "fmt")func PKCS7Padding(ciphertext []byte, blockSize int) []byte { padding := b...

2018-05-21 23:14:14 212

转载 分组密码

分组密码密码算法可以分为分组密码和流密码两种分组密码(block cipher)是每次只能处理特定长度的一块数据的一类密码算法,这里的“一块”就称为分组(block)。一个分组的比特数就称为分组长度(block lenght)。例如 DES和3DES的分组长度都是64比特。AES的分组长度为128比特。流密码(stream cipher)是对数据流进行连续处理的一类密码算法。流密码...

2018-05-21 23:13:06 7784

原创 实现数字签名

实现数字签名数字签名算法(DSA)数字签名算法(DSA,Digital Signature Algorithm),是一种公开密钥算法,不能用于加密,只能用于数字签名。主要用作为接收者验证数字的完整性和数据发送者的身份,DSA算法的安全性基于解离散对数的困难性。package mainimport ( "crypto/dsa" "crypto/rand" ...

2018-05-21 23:11:02 2714

转载 数字签名

数字签名什么是数字签名数字签名就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。签名的生成和验证生成消息签名的行为生成消息签名这一行为是由消息的发送者来完成的,也称为“对消息签名”。生成签名就是根据消息内容计算数字签名的值,这个行为意味着“我认可该消息的内容”。验证消息签名的行为验证数字签名...

2018-05-21 23:09:58 443

转载 GO语言实现RSA 加密和解密的实现

RSA 加密和解密的实现openssl生成私钥openssl genrsa -out rsa_private_key.pem 1024 openssl生成公钥openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 实现 RSA 加密解密package main im...

2018-05-21 23:07:25 6409

转载 使用 go 实现 PoW(Proof-of-Work)共识机制

使用 go 实现 Proof-of-Work 共识机制什么是 Proof-of-WorkProof-of-Work 简称 PoW,即为工作量证明。通过计算一个数值( nonce ),使得拼揍上交易数据后内容的 Hash 值满足规定的上限。在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。如果验证通过,则表明已经有节点成功解...

2018-05-21 23:04:40 901

原创 密码学-CFB

CFB算法密码算法可以分为分组密码和流密码两种,之前所学的DES,3DES和AES都是分组密码。CFB和OFB都是刘密码,而CFB和OFB使用方法也基本相同,所以只以CFB进行讲解: package main//通过CFB模式进行AES加密import ( "crypto/aes" "io" "crypto/rand" "crypto

2018-05-17 20:36:40 2679

原创 密码学-AES

AES算法在AES算法中的秘钥可以是16位,24位或者32位,在加密和解密的过程中要使用同一个秘钥。package mainimport ( "bytes" "crypto/aes" "crypto/cipher" "fmt")func main() { key16 := []byte("1234567890123456") e...

2018-05-17 20:27:57 879

原创 密码学-3DES

3DES加密算法3DES加密算法的使用与DES的用法基本相同,使用方法如下: package main import ( "bytes" "crypto/des" "crypto/cipher" "fmt" "encoding/base64&

2018-05-17 20:16:02 209

原创 链表-环形链表

package mainimport ( "fmt" "time")type Woker struct { Age int Name string}type Node struct { NextNode *Node PreNode *Node Data *Woker}//创建头结点f

2018-05-16 22:58:54 222

原创 密码学

现代密码学一、 hash散列原理1、 数据结构链表 2、 Hash 散列算法二、 SHA256Hash加密概念:将任意长度的铭文加密成固定长度的密文 MD4 MD5 SHA256三、 对称加密概念:用同一个密钥进行加密和解密 AES DES四、 非对称加密概念:同时产生公钥和私钥,公钥可以公开,私钥自己保存好 1、RSA【非对称加密...

2018-05-16 20:41:11 150

原创 密码学-链表

数据结构链表下面我们来写一个单向的简单链表,首先我们要声明一个头节点是为了保存头节点信息,同理声明一个当前节点保存当前节点的信息,再然后声明一个节点类型的结构体,里面有两个变量,一个是节点的存储数据,数据类型为字符串,另一个是下一个节点的地址数据类型节点的指针类型。(package LinkNodes的内容写在LinkNodes文件夹下的node.go文件中) package Lin...

2018-05-16 20:34:31 218

原创 密码学-hash散列表

hash散列表哈希表(也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 下面我们来写一个简单的hash散列表,首先对上一节中的代码我们做一些改进,在这里我们声明一个结构体类型,作为几点数据的类型,然后对代码的参数进行一些修改。pac...

2018-05-16 20:30:57 281

原创 密码学-DES

#DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法对称加密算法DES的使用package main//DES,3DES,AES//用同一个秘钥加密和解密import ( "bytes" "crypto/cipher&a

2018-05-16 20:23:26 527

原创 密码学-hash加密

以下代码分别为乘法hash,sha256,md5,ripemd160的使用方法:package mainimport ( "fmt" "crypto/sha256" "os" "io" "crypto/md5&qu

2018-05-16 20:20:31 948

转载 Golang经典面试题下

1. 下面代码能运行吗?为什么type Param map[string]interface{}type Show struct { Param}func main1() { s := new(Show) s.Param["RMB"] = 10000}运行结果:panic: assignment to entry in nil mapgo...

2018-05-16 20:16:29 8887 1

转载 Golang经典面试题上

1. 写出下面代码输出内容package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Printl...

2018-05-16 20:14:46 20175 3

xshell6破解版.rar

xshell6破解版.rar

2019-07-04

Acunetix Web Vulnerability Scanner(简称AWVS)

AWVS.rar破解版

2019-07-04

burpsuite_Pro2.0.rar

burpsuite_Pro2.0破解版

2019-07-04

Burp Suitev1.7.19-插件版.rar

Burp Suitev1.7.19-插件版

2019-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除