自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 产品常见安全漏洞挖掘和分析以及解决方案

缓冲区溢出原理:当函数内的一个数组缓冲区接受用户输入的时候,未对输入的长度进行合法性检查时,可以构造数据覆盖超过缓冲区的高地址上原本的其他栈帧数据,如果本身的数据内就保存了一系列的指令的二进制代码,一旦栈溢出修改了函数的返回地址,并将该地址指向这段二进制代码的起始位置,那么就形成成了基本的溢出攻击行为。防护措施:1)只使用安全的内存操作函数。2)在进行内存操作之前,对要操作的长度和被操作空间的长度进行比较,如果大于禁止继续进行操作。–这里要注意整数溢出,长度对比时要注意,使用安全函数也要注意(安

2020-05-25 16:33:03 1530 1

原创 curl的各种高端命令进阶

curl发送GET请求curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地curl -i “http://www.baidu.com” 显示全部信息curl -l “http://www.baidu.com” 只显示头部信息curl -v “http://www.baidu.com” 显示get请求全过程解析cur...

2019-12-27 17:04:56 552

原创 持续打造最全的git常用命令

git clonegit clone拷贝一个 Git 仓库到本地,本地目录名称与Git 仓库同名git clone <版本库的网址>拷贝一个 Git 仓库到本地,重新定义本地目录名称git clone <版本库的网址> <本地目录名>拷贝一个指定分支到本地,本地目录名称与分支同名git clone -b 分支名 <版本库的网址>git...

2019-12-16 16:54:06 328 1

原创 nodejs实现des,3des,aes等加密算法的数据加密

前言nodejs提供了crypto这个npm包,常用的加密算法都可以由crypto包提供的接口实现各种加密算法实现const assert = require('assert');const crypto = require('crypto');const key = 'dvyYRQlnPRCMdQSe';/* * @brief 加密数据 * @param[in] encodeP...

2019-09-02 22:12:32 3877 2

原创 毕业半年的工作体验与总结

彻底离开校园一转眼毕业半年多了,很奇怪的是明明心中思绪万千,打开编辑模式却看着屏幕半天不知道从哪说起

2019-01-30 12:29:49 601

原创 过滤器模式(C++实现)之帮你选个男朋友

过滤器模式(Filter Pattern)过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。这种这么官方的介绍当然是我从菜鸟教程复制过来的——过滤器模式|菜鸟教程那就再谈一谈我自己的见解吧...

2018-12-15 15:50:15 1289 1

原创 error: passing xxx as 'this' argument of xxx discards qualifiers的解决办法

写demo的时候碰到一个C++编译报错,初见也是奇怪了,编译器指向我调用类成员函数出错了。然后百度看了下别人的博客瞬间就醍醐灌顶了,原来是编译器认为成员函数可能会修改被const限定的变量解决办法问题根因已经明确,那自然是把成员函数也用const限定一下,这样编译器就不会认为你的成员函数会修改成员变量了。复习一下在类成员函数的声明和定义中,const的函数不能对其数据成员进行修改操...

2018-12-09 23:37:42 10356 4

原创 iptables命令详解之大战iptables八百回合

简介netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。总则iptables [-t 要操作的表] &lt;操作命令&gt; [要操作的链] [规则号码] [匹配条件] [-j 匹配到以后的动作]...

2018-11-05 15:42:23 437

原创 桥接模式(C++实现)——我们来一起画个有颜色的图

桥接模式(bridge pattern)感觉桥接模式是一种挺灵活的设计模式吧,它可以很好的把各个类串在一起。比如说你走进了一家4S店,准备去买辆跑车。跑车的颜色可以是一个类,跑车的形状可以是一个类,跑车的品牌也是一个类。你告诉店家你想要一辆流线型的黑色兰博基尼,店家就会按照你的需求带你去看车了,你作为客户是看不到流线型的黑色兰博基尼的实现过程,而店家就是你的那个桥,对外直接暴露接口。另外如果你...

2018-10-14 16:25:01 817

原创 适配器模式(C++实现)之戏说手机数据线

适配器模式(adapter_pattern)好久没更新设计模式的博客了,懒得去死呀-_-想看适配器模式的详细介绍还是推荐菜鸟教程呀——菜鸟教程|适配器模式我这里只谈谈自己的学习体会,一开始感觉适配器模式和工厂模式有点像。工厂模式对外暴露出一个工厂类,你想要什么只要告诉这个工厂类就可以了,它会给你安排一个你想要的对象;有点像的是适配器模式对外也暴露一个适配器类,你想要干什么告诉适配器类就可以了...

2018-10-07 23:55:27 416

原创 关于我拿下校招offer的分享

关于我的offer我个人其实并没有跑过太多的校招,记忆中跑得比较多的应该是实习招聘了吧,当时大概在线上线下来来回回参加了十多次实习招聘的考试吧,反正当时是看到了大公司的线上线下实习招聘就凑上去考试,很多都是考完了走出考场就知道可能要没有了下文,然后回学校总结经验继续刷题和学习,最后去了深信服实习,再后来也就实习答辩拿到了校招的offer。以至于暑期错过了蛮多公司的校招,后来干脆也就懒得找了,毕业...

2018-09-24 10:44:55 2600

原创 戏说原型模式(C++实现)之如何快速创建一个“对象”

介绍一下原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。还要再具体的就去菜鸟教程看吧——原型模式|菜鸟教程 这里说说我自己的感悟,当一个类有很多属性的时候,你又不太熟悉其属性,这个时候创建一个对象还要填充属性值就有点麻烦了。 那怎么办呢?直接克隆一个现成的吧,我才不管它有哪些属性,既然它...

2018-09-09 16:58:37 345

原创 关于建造者模式(C++实现)——怎么做一个全家桶

关于建造者模式,专业的术语介绍可以直接戳到菜鸟教程去学习——菜鸟教程~建造者模式谈谈个人体会建造者模式简直就是为全家桶系列而生的,它使用一个个简单的对象进而构成复杂的对象,就像肯德基使用简单的薯条、鸡腿、鸡翅、可乐等单一的食物推出了全家桶套餐。后序又将各种单一的产品进行组合他,不断推出全新的套餐,拉动消费。 屁话不多说了,下面介绍下我学习建造者模式后,用C++描述的一个简单demo。...

2018-09-02 15:25:09 813

原创 派生类不能以列表的形式初始化从基类继承来的成员变量

派生类不能以列表的形式初始化从基类继承来的成员变量#include "iostream"using namespace std;class base{protected: int a;};class base1:public base{public: base1(int b_a = 5):a(b_a) { } int show()...

2018-08-05 17:19:56 1599

原创 关于单例模式的细节学习——C++实现版

单例模式可以说是最普为人知的一种设计模式了吧,但单例模式的细节又有多少人想清了呢?那就先提几个问吧单例模式的对象该如何释放?何时释放?如何优雅的释放? 单例模式有哪几种实现方式? 如果你瞬间就一大段代码涌出脑海,我建议你别看这篇博文了,省得浪费你时间。 那下面就开始说正事吧UML图饿汉式时间换取空间的实现方式,打死我也不创建对象。这种模式只有在第一个对象实例化的时候才...

2018-07-29 17:30:42 325

原创 C++实现设计模式——观察者模式

关于观察者模式,对它的认知依旧是起源于菜鸟教程的设计模式篇章,里面解释的很到位。 这里简单介绍一句,当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。详细介绍戳该链接——菜鸟教程~观察者模式本文分享一个老师布置作业的例子感觉这个例子完美诠释了观察者模式,学生作为观察者,观察者模...

2018-07-22 22:34:59 299

原创 C++实现设计模式——抽象工厂模式

感觉抽象工厂模式有点像你去买电脑的时候,先告诉卖电脑的你要买联想的,然后再告诉卖电脑的你要个鼠标,最后你喜提联想的鼠标回家了。 这里也感谢菜鸟教程,提供免费的学习资料。 优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。 缺点:产品族扩展非常困难,要增加一个系列的某一产品,既要在抽象的 Creator 里加代码,又要在具体的里面加代码。 使用场...

2018-06-29 23:07:56 424

原创 C++实现设计模式——工厂模式

这几天逛菜鸟教程发现了设计模式的内容,点进去一看全是Java书写的。对于一个C/C++的菜鸟来说,决定用C++将其重写一遍增强学习效果。 别的不说了,回到正题来吧。工厂模式是常见的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 对于工厂模式的介绍我就照搬一下菜鸟教程吧,我自己的理解就是你只需要把产品信息告诉工厂,然后工厂会根据你给出的产品信息生成不一样的具体对...

2018-06-05 17:18:23 441

原创 瞎说一下linux后台不得不知的tcpdump

感觉做后台都绕不开网络数据的交互,毕竟在当下这个互联网的大环境下,太多数据都不会是一家独享,太多用户都要求第三方认证(比如说微博支持微信等各种第三方账号登录)。那A和B的数据该如何对接起来呢?做linux后台的亮出自己的tcpdump神剑,让所有的网络数据无所遁形。 我在实习的时候初见tcpdump,可以说是对它神烦了。各种参数组合在一起,变成一条长长的命令,这是什么鬼嘛。不过却又不得不感叹它的...

2018-05-02 16:16:29 1278

原创 每日一题之清华考研机试——最小邮票数

刷题链接 最小邮票数题目描述 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。 输入描述: 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M&lt;100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,...

2018-04-29 12:14:57 378

原创 每日一题之清华考研机试——完数VS盈数

题目描述 一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述: 题目没有任何输入。 输出描述: 输出2到60之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ……(ei为完数) G: g1 g2 g3 ……(gi为盈数) 其中两个数之...

2018-04-25 11:52:45 356

原创 centos7.3yum安装mysql后缺少mysql.h头文件

1.yum search mysql //查找mysql的依赖然后会显示已安装和未安装的依赖库 查找与头文件相关的依赖库 [root@10-254-0-161 dc2-user]# yum search mysql | grep “header files” mysql-community-devel.i686 : Development header files and librari...

2018-04-12 16:50:27 3623

原创 在深信服实习半年会是什么样的体验

犹豫了很久,最终还是决定好好回忆一下自己在深信服的这半年 坦白说,深信服并不是我最初的梦想之地(对网易有一种莫名的情怀),后来本着既来之则安之,静下心来好好工作提高自己的态度,发现自己慢慢喜欢上了深信服这个大家庭,我感觉到了团队的温暖(也可能是我盲人摸象了吧,但在部门感受到的温暖进而就会感觉整个公司也很温暖的),感觉到了团队的积极向上,感觉到了同事的风趣幽默和责任心,感觉到了自己也想成为他们那样...

2018-04-07 15:35:02 13234 6

原创 linux基础知识(三)

1、管道:实现进程之间通信 管道符号(|) 写法:command1 | command2 将前一个命令的标准输出作为下一个命令的标准输入 ls -l | wc 2、符号重定向 linux系统中存在三个特殊整数值: 0:标准输入 stdin 从输入设备中输入数据(键盘) 1:标准输出 stdout 将数据输出到输出设备(显示

2017-01-20 13:06:15 361

原创 linux基础知识(二)——常见命令

linux常见命令: 1、touch:创建文件 touch a b c 2、cat:读取文件 cat a cat /etc/passwd 3、读取文件前N行 head -10 /etc/passwd 4、读取文件后N行 tail -10 /etc/passwd 5、创建目录 mkdir dir1 mkdi

2017-01-12 22:48:41 392

原创 linux基础知识(一)

在linux文件系统中最核心的思想就是“一切皆文件”。 [root@localhost /] “/”表示文件的根目录 下面是一些linux文件系统中根目录下的一些主要系统文件和文件目录: 1、bin:存放一般用户使用的命令二进制执行程序文件。 2、sbin:存放管理用户使用的命令二进制执行程序文件。 3、etc:存放系统配置信息文件。 passwd:存放用户文件。

2017-01-11 21:19:05 477

原创 一道有意思的ACM题——Poker Hands的解法

A poker deck contains 52 cards - each card has a suit which is one of clubs, diamonds, hearts, or spades (denoted C, D, H, S in the input data). Each card also has a value which is one of 2, 3, 4, 5,

2017-01-10 23:10:38 1647

原创 在二叉树中打印出从某个节点(r)开始和为定值(sum)的所有路径

通过在函数中定义两个静态栈,对r的每个孩子进行遍历和累计,当遍历到的孩子的节点和与sum相等时就打印出这条路径。至于遍历的方法,个人认为递归可以比较简单的实现。本文为模板二叉树中的一个子函数,如果想要整个模板二叉树类的代码请联系本人。不多说,直接上代码吧,让注释来慢慢说话。template void tree::print_route(tree_node *r,T sum){

2017-01-08 19:00:16 600

空空如也

空空如也

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

TA关注的人

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