比特币数据结构科普

地址 私钥由 32 字节随机数组成,通过私钥可以计算出公钥,公钥通过一系列 hash 和编码(Base58,避免书写混淆如I和L)可以得到比特币地址,可以简单的将地址理解为公钥的摘要。 # 比特币使用了椭圆曲线签名算法 私钥 =>…

Read More

过去的 2017

现在已经是 2018 年的 3 月份了,按照以往的惯例,每年到年终的时候都会更新一下博客,总结一下过去一年的学习与生活,由于去年比较懒,这篇文章迟迟没有写,一直推到了现在。过去的一年经历了太多的事情,从学生到职场人的角色转变,从重庆到北京。一路走来,…

Read More

awk 入坑指北

awk(/ɔːk/) 是 *nix 下一种强大的文本处理工具,其名称取自三位作者 Alfred Aho,Peter Jay Weinberger,Brian Wilson Kernighan。awk…

Read More

关于自由软件与开源协议

在 GitHub 上浏览一些开源软件时,我们经常会看到 README.md 文件下会有一个关于 License 的声明,或者有一个单独的 LICENSE文件来说明该软件或者类库是基于什么协议开源的,你能拿他做什么不能做什么。或许是因为习惯了在Google 或者 Stackoverflow…

Read More

CPU挖矿-利用VPS挖莱特币

前段时间疯狂的WannaCry蠕虫病毒再一次将比特币带入大众视野,导致最近挖矿的人越来越多,AMD 显卡甚至都脱销还出现了专门的矿机。之前也还没有写过关于区块链技术的博客,后面打算有时间写两篇文章来介绍一下我对区块链技术的认识以及与比特币相关的一些东西。本文主要介绍了挖矿的概念,以及如何利用普通服务器的 CPU 来实现莱特币挖矿。 什么是挖矿 这里的挖矿不是挖煤,最早的 P2P 货币挖矿当然是出现在比特币中,…

Read More

See U 2016

这篇文章可能不完整 2016年,自己的改变很大,上半年在重庆上学,现在在北京实习。 年初回到学校发现已经是大三下了,也没有很多课,之前寒假在家更多的时候在看一些书,也是那个时候开始喜欢上了阅读。在3月份之前还是以前的状态,每天看下书,逃点课,撸点代码,日常去CFC待着,晚上9点固定去跑5km,…

Read More

Redux中间件与异步Action

在之前的浅谈Flux架构及Redux实践一文中我们初步的谈及了Redux的数据流思想,并做了一个简单的加减器。但是还没有接触到Redux更多常用的场景,异步操作、API调用,如何连接到UI层等,Redux可以与很多框架搭配包括Vue、React甚至是纯JavaScript。后面我们会用一个实例--通过github API获取个人信息,来将Redux middleware、async action、连接到React贯穿其中。…

Read More

浅谈Flux架构及Redux实践

Flux概述 Flux是Facebook用来构建用户端的Web应用程序的体系架构,与其它形式化的框架相比,它更像是一个架构思想,用于管理和控制应用中数据的流向。这里应用中的数据指包括但不限于来自服务端的数据页面中view的一些状态(如一个面板是展开还是关闭),临时存储在本地需要持久化到服务端的数据等。 好了,说了这么多好像还是一脸懵逼,不慌,接下来看看展开式。 MVC 在讲述Flux之前,我们看看之前传统的MVC架构以及在前端中的一些问题继而思考Flux带来的改变。…

Read More

实现一个简单的HTTP Client

httpclient-cli Linux下用C语言实现发送HTTP请求并获取html文档内容的CLI程序 理论基础 HTTP请求报文格式 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 基于TCP协议的网络通信流程 相关数据结构 sockaddr_in…

Read More

XSS持久型攻击实例--向学校图书馆网站页面注入JS

XSS攻击是Web中很常见的攻击,其原理有点类似与SQL注入,改变了原来的执行逻辑。之前了解过一些XSS,但是没有去具体实现,刚刚拿学校的网站做了下XSS攻击,成功的给图书馆网站下了毒+_+... XSS攻击大概可以分为两种,一种是非持久型攻击,这一般只会影响个体用户,不会造成长期的影响,另一种为持久型攻击,也就是我们要讲的这种,将我们的代码注入到目标服务器页面上,所有访问这个页面的用户都会被攻击。…

Read More

浅析JS中的自定义事件

在JS中事件是与浏览器进行交互的主要途径,事件与DOM进行交互是最常见的方式,但是也可以用于非DOM代码中,实现自定义的事件。自定义事件的主要概念是创建一个管理事件的对象,用来删除,增加,触发事件等。事件是瞬间触发的,所以自定义事件也一样,当程序执行到某处时,触发了用户注册的事件处理程序完成这个过程。 在下面我们实现了一个自定义的事件管理类,以及一个弹出层对话框的Dialog组件,这个组件继承了事件类里的方法,…

Read More

Javascript模块化编程及编写加载遵循AMD规范的代码

最原始的写法 模块就是实现一组特定功能的方法,把不同的函数简单的放在一起就是一个模块。 对象写法 把模块写成一个对象,所有的模块成员都放到这个对象里面。 var module1 = new Object({ _count: 10, func1: function () { console.…

Read More