Stefenson's Blog

一个渣渣程序员的笔记

Tags:

Stefenson Wang's avatar Stefenson Wang

自制NAT网关

前面的Blog也提到了,DHCP服务只负责分配IP,路由器里面DHCP服务并不是入网服务,那么真正的入网是哪一部份负责呢? 这里提一个大家都很熟悉的名字:网关。 网关的在Wiki定义是:转发其他服务器通信数据的服务器,接受客户端发送来的请求时,它就像自己...     阅读全文

Stefenson Wang's avatar Stefenson Wang

无损文件压缩

无损压缩(下简称”压缩”)是计算机存储方面很重要的一种课题(至少在过去是),这是一种典型的时间换空间的方案。 过去由于存储介质普遍很贵,所以压缩方式存储文件可以更大化的利用存储介质的空间(就问你有没有见过只有40G的PC硬盘,想想都可怕)。 压缩,顾名思义就是把大文件的体积变小,让他在存储的时候能够少用一点存储空间,而且压缩后的文件能保证可以反向解算出来并且...     阅读全文

Stefenson Wang's avatar Stefenson Wang

有限集内MD5/SHA1可逆吗——MD5、SHA1算法

今天讲一讲hash算法。 hash算法不可逆,大家都知道,因为这是一个一对多的问题,一个MD5/SHA1值理论上是可以对应多个原始数据的,所以MD5/SHA1是无法还原出原始信息的。 但是,如果我指定范围,你能通过MD5/SHA1倒推出原始数据吗? 举个例子:定义一个hash算法,取值在255下的模,这样的hash值也是不能直接反推数据的,但是...     阅读全文

Stefenson Wang's avatar Stefenson Wang

AVL树与红黑树

二叉树是一种很经典的数据结构,利用这种结构,我们可以构造出一个快速的数据查询结构,原理就是利用二叉树每个节点都有两个孩子这一性质,我们让每个树节点的左右孩子性质一样,比如左树都比父节点小,右树都比父节点大,这样的结构中我们从根查找一个数据的速度会加快很多,过程就是比当前值大就去右树找,比当前值小就去左树找。这种树我们叫做二叉排序树,它其实就是一个排序好的队列的二分查找过程的具像化结构。...     阅读全文

Stefenson Wang's avatar Stefenson Wang

排序算法

今天来说点简单的东西,排序算法。 排序问题应该是目前业务场景中出现的比较多的问题,程序员们学习编程算法所接触到第一个比较复杂也比较有用的算法应该就是冒泡排序算法了,所以说排序算法对于程序员们来说是既陌生又熟悉的存在。 很多编程教程中或者算法书中都对排序算法进行过一番介绍,而且对这些算法的性能作出比较,然后使用时间复杂度或者空间复杂度来描述他们的优劣,但是恐怕...     阅读全文

Stefenson Wang's avatar Stefenson Wang

AES加密

AES加密是一种对称加密算法,全称为Advanced Encryption Standard,高级加密标准,在密码学中又称Rijndael加密法。它是一种区块加密标准,目前是最流行的一种对称加密算法。该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael为名投稿高级加密标准的甄选流程。 AES加密流程很简单...     阅读全文

Stefenson Wang's avatar Stefenson Wang

RSA加密

今天主要介绍的是RSA加密。 RSA加密是目前世界上最流行的非对称加密,它名字的来源于它的三位父亲:罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman),他们在1977年提出了RSA加密并且在1987年7月首次在美国公布,RSA来源于他们的姓氏开头字母。 RSA加密内容其实很简单,先...     阅读全文

Stefenson Wang's avatar Stefenson Wang

PPPoE服务器编写

PPPoE(Point-to-Point Protocol Over Ethernet)协议是一个以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。它是一个链路层协议,如果要想自己实现一个PPPoE服务器需要了解链路层编程的相关知识。网络五层架构中:应用——传输——网络——链路——物理。链路层属于比较靠底层的一层,所...     阅读全文

Stefenson Wang's avatar Stefenson Wang

DHCP服务器编写

DHCP协议(Dynamic Host Configuration Protocol)是一个网络层协议,主要用于给接入设备分配IP,是目前所有路由设备中重要的协议之一。 本文主要记录博主以前编写DHCP时查询的所有资料和记录编写中遇到的坑,还有编写之后对于DHCP整个流程的理解,希望对后来者有些帮助。 注意:本文不会写相关代码,只讲述编写思路和算法,代码不是...     阅读全文