比特币数据结构科普

地址

私钥由 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 提供的功能包括不仅限于正则匹配、流控制、算术运算、甚至于函数等编程语言具备的一些特性。它发行于 1977 年,已经超过了 40 岁堪称古董级软件。为了更让人能直接明白它的用途,我把它称为是命令行下的 Excel,其中的一些概念和 Excel 有很多相似之处。

Read More

关于自由软件与开源协议

在 GitHub 上浏览一些开源软件时,我们经常会看到 README.md 文件下会有一个关于 License 的声明,或者有一个单独的 LICENSE文件来说明该软件或者类库是基于什么协议开源的,你能拿他做什么不能做什么。或许是因为习惯了在Google 或者 Stackoverflow 上找到一份代码就开始使用的缘故,很多人不会留意这些软件是基于什么开源协议开源的。比如广泛使用的 jQuery,大家都在用,也没有任何人说直接复制了或者更改了 jQuery 源码产生衍生软件会有什么问题。但是在开发商业软件的过程中如果需要用到开源软件,它使用的何种开源协议对你的软件有直接或者致命的影响。

Read More

CPU挖矿-利用VPS挖莱特币

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

Read More

See U 2016

这篇文章可能不完整

2016年,自己的改变很大,上半年在重庆上学,现在在北京实习。

年初回到学校发现已经是大三下了,也没有很多课,之前寒假在家更多的时候在看一些书,也是那个时候开始喜欢上了阅读。在3月份之前还是以前的状态,每天看下书,逃点课,撸点代码,日常去CFC待着,晚上9点固定去跑5km,周末和室友玩下游戏看下球赛。后面开始准备找实习面试什么的中间穿插着一个CTF的比赛,有时候从CFC回来晚了路过镜湖会拍一张照,不同日期,不同时间点,这段时间更多的是学习吧,自从到了大三基本不主动的参加一些项目开发,对奖学金、学校的一些比赛也基本没有兴趣,我一心只有学习…从大一到大三接触的东西其实挺多的,当时看到js社区圈非常活跃和新的es标准出来nodejs的广泛应用,相对php和android自己更加熟悉,现在才感觉进入了fe大坑。

Read More

Redux中间件与异步Action

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

/images/redux-demo.png

Read More

浅谈Flux架构及Redux实践

Flux概述

Flux是Facebook用来构建用户端的Web应用程序的体系架构,与其它形式化的框架相比,它更像是一个架构思想,用于管理和控制应用中数据的流向。这里应用中的数据指包括但不限于来自服务端的数据页面中view的一些状态(如一个面板是展开还是关闭),临时存储在本地需要持久化到服务端的数据等。

好了,说了这么多好像还是一脸懵逼,不慌,接下来看看展开式。

clipboard.png

Read More

实现一个简单的HTTP Client

httpclient-cli

Linux下用C语言实现发送HTTP请求并获取html文档内容的CLI程序

理论基础

HTTP请求报文格式

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

Read More

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

XSS攻击是Web中很常见的攻击,其原理有点类似与SQL注入,改变了原来的执行逻辑。之前了解过一些XSS,但是没有去具体实现,刚刚拿学校的网站做了下XSS攻击,成功的给图书馆网站下了毒+_+…

XSS攻击大概可以分为两种,一种是非持久型攻击,这一般只会影响个体用户,不会造成长期的影响,另一种为持久型攻击,也就是我们要讲的这种,将我们的代码注入到目标服务器页面上,所有访问这个页面的用户都会被攻击。其实之前没有去具体实现因为比较“出名”的网站一般在防XSS上做的比较完善,不好去找漏洞,所以才拿学校网站做测试(以前经常这样干抓数据什么的。。。),在最后我们实现的是向页面中注入自己的js代码,并将访问该页面用户的cookie信息传到我自己的服务器上。

找到漏洞

XSS一般会发生在提交表单或者其他与服务器交互的场景中,然而好像学校网站基本没有可以用户自己回复信息,发布信息什么的,但是记得好像学校图书馆的页面可以评论,就拿这个测试了。

/images/lib-cqut-1.png

Read More