-
关于启用HTTPS的一些经验分享
所属栏目:[安全] 日期:2021-03-20 热度:59
随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS。就在今天,免费提供证书服务的 Lets Encrypt 项目也正式开放,HTTPS 很快就会成为 WEB 必选项。HTTPS 通过 TLS 层和证书机制提供了内容加密、身份认证和数据完整性三[详细]
-
算法—选择排序
所属栏目:[安全] 日期:2021-03-19 热度:50
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元[详细]
-
算法—希尔排序
所属栏目:[安全] 日期:2021-03-19 热度:70
希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率 但插入排[详细]
-
算法—冒泡排序
所属栏目:[安全] 日期:2021-03-19 热度:98
冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到[详细]
-
算法—插入排序
所属栏目:[安全] 日期:2021-03-19 热度:130
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 {displaystyle O(1)} {di[详细]
-
数据结构:数组、链表、栈、队列的理解
所属栏目:[安全] 日期:2021-03-19 热度:107
解释定义 数据结构: 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。再简单描述一下:数据结构就是描述对象间逻辑关系的学科。 如果还是不太清楚下面会举例说明的。 数据存储结构: 简单的讲就是数据在计算机中的存储方式。 常用的数据存储[详细]
-
iptables 添加,删除,查看,修改
所属栏目:[安全] 日期:2021-03-19 热度:93
iptables是linux系统自带的防火墙,功能强大,学习起来需要一段时间,下面是一些习iptables的时候的记录。如果iptables不熟悉的话可以用apf,是一款基于iptables的防火墙,挺好用的。请参考: linux apf 防火墙 安装 配置 一,安装并启动防火墙 [root@linux ~[详细]
-
Shell脚本中实现把输入的密码转换为*(星号)的方法
所属栏目:[安全] 日期:2021-03-19 热度:84
如果你需要写一段与用户交互,且需要输入一些敏感信息的(例如:用户密码、License等),那么直接用printf+read的方式,就会把用户输入的信息显示在屏幕了,这是不符合信息安全的,而且对客户体验来说也显得不够专业,所以就需要将用户输入的密码转换为*,样[详细]
-
linux apf 防火墙 安装 配置
所属栏目:[安全] 日期:2021-03-19 热度:92
APF(Advanced Policy Firewall)是 Rf-x Networks 出品的Linux环境下的软件防火墙,被大部分Linux服务器管理员所采用,使用iptables的规则,易于理解及使用。 适合对iptables不是很熟悉的人使用,因为它的安装配置比较简单,但是功能还是非常强大的。 一,下载,[详细]
-
算法图解之快速排序
所属栏目:[安全] 日期:2021-03-18 热度:125
分而治之(又称DC) 书中举了一个例子,假设你是农场主,有一块土地,如图所示: ? 你要将这块地均匀分成方块,且分出的方块要尽可能大。 ? ? 从图上看,显然是不符合预期结果的。 那么如何将一块地均匀分成方块,并确保分出的方块是最大的呢?使用DC策略。 (1)[详细]
-
lt;数据结构与算法分析gt;读书笔记--利用Java5泛型实现泛型构
所属栏目:[安全] 日期:2021-03-18 热度:95
? 一、简单的泛型类和接口 当指定一个泛型类时,类的声明则包括一个或多个类型参数,这些参数被放入在类名后面的一对尖括号内。 示例一: package cn.generic.example; public class GenericMemoryCell AnyType { public AnyType read() { return storedValue[详细]
-
lt;数据结构与算法分析gt;读书笔记--函数对象
所属栏目:[安全] 日期:2021-03-18 热度:156
关于函数对象,百度百科对它是这样定义的: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。又称仿函数。 ? 听起来确实很难懂,通过搜索我找到一篇博客,作者对其是这样的描述: 如果把对象理解成指针的话,[详细]
-
lt;数据结构与算法分析gt;读书笔记--运行时间计算
所属栏目:[安全] 日期:2021-03-18 热度:91
有几种方法估计一个程序的运行时间。前面的表是凭经验得到的(可以参考:数据结构与算法分析读书笔记--要分析的问题) 如果认为两个程序花费大致相同的时间,要确定哪个程序更快的最好方法很可能将它们编码并运行。 一般地,存在几种算法思想,而我们总愿意尽早[详细]
-
老黄牛读后感
所属栏目:[安全] 日期:2021-03-18 热度:178
感悟: 有句话叫做,一千个人里面就有一千个哈姆莱特,通常表示着不同的人对某个事物看法不同。 今天再读这篇文章时,联想到2018年的程序员跳楼事件。至于为什么跳楼,真相究竟是什么,这里不作探究。这里想说的是,放眼整个世界,每天都有像老黄牛这样的例子[详细]
-
lt;数据结构与算法分析gt;读书笔记--模型
所属栏目:[安全] 日期:2021-03-18 热度:82
为了在正式的构架中分析算法,我们需要一个计算模型。我们的模型基本上是一台标准的计算机,在机器中指令被顺序地执行。该模型有一个标准的简单指令系统,如加法、乘法、比较和赋值等。但不同于实际计算机情况的是,模型机做任一简单的工作都恰好花费一个时[详细]
-
lt;数据结构与算法分析gt;读书笔记--要分析的问题
所属栏目:[安全] 日期:2021-03-18 热度:114
通常,要分析的最重要的资源就是运行时间。有几个因素影响着程序的运行时间。有些因素(如使用编译器和计算机)显然超出了任何理论模型的范畴,因此,虽然它们是重要的,但是我们在这里还是不能考虑它们。剩下的主要因素是所使用的算法以及对该算法的输入。 典[详细]
-
算法图解之选择排序
所属栏目:[安全] 日期:2021-03-18 热度:90
假设你的计算机存储了很多乐趣。对于每个乐队,你都记录了其作品被播放的次数。 如果你要将这个列表按播放次数从多到少的顺序排列,从而将你喜欢的乐队排序。该如何做呢? 我第一眼看到这个问题时,想到的是通过sql解决这个问题 假设如果这是一个数据表的话,[详细]
-
算法图解之数组和链表
所属栏目:[安全] 日期:2021-03-18 热度:93
数组和链表 1.数组 以添加第四个待办事项为例,但后面的那个抽屉已经放了别人的东西 这就像你与朋友去看电影,找到地方就坐后又来了一位朋友,但原来坐的地方没有空位置,只得再找一个方可坐下所有人的地方。在这种情况下,你需要请求计算机重新分配一块可容[详细]
-
lt;数据结构与算法分析gt;读书笔记--数学知识复习
所属栏目:[安全] 日期:2021-03-18 热度:101
数学知识复习是《数据结构与算法分析》的第一章引论的第二小节,之所以放在后面,是因为我对数学确实有些恐惧感。不过再怎么恐惧也是要面对的。 ? 一、指数 基本公式: ? ?二、对数 在计算机科学中除非有特别的声明,否则所有的对数都是以2为底的。 定义:X A[详细]
-
SVN限制message字符个数及格式的实例
所属栏目:[安全] 日期:2021-03-16 热度:198
一、编写 pre-commit脚本 ------------------------------------#/bin/bashREPOS="$1"TXN="$2"# Make sure that the log message contains some text.SVNLOOK=/usr/bin/svnlookLOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`MSG=`$[详细]
-
完美解决gvim的菜单乱码问题
所属栏目:[安全] 日期:2021-03-16 热度:187
gvim的菜单乱码问题的解决方法: (乱码是由于系统内码不兼容导致,系统内码包括gb2312 gb18030 utf-8 utf-16[unicode]等) 生成文件 ~/.gvimrc 并添加如下语句: set encoding=chinese set langmenu=zh_CN.GBK set imcmdline set guifont="Serif 14" source[详细]
-
详谈Linux打包与压缩及tar命令
所属栏目:[安全] 日期:2021-03-16 热度:103
打包和压缩 在linux中,打包和压缩可以说是两个不同的概念,弄清这两个概念对于我们理解复杂的文件后缀有非常大的帮助 打包 将若干个文件和目录打包在一起变成一个大的文件,这时只是简单的打包,所以一般打包后的文件大小比被打包的文件总和还大 压缩 将一[详细]
-
输出执行操作和打印日志的shell脚本实例
所属栏目:[安全] 日期:2021-03-16 热度:188
cat /mnt/log_function.sh #!/bin/bash #log function####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间 USER=$(whoami) ####那个用户在操作 echo “${DATE} ${USER} exec[详细]
-
Linux 分区初始化为物理卷,把物理卷加入卷组的方法
所属栏目:[安全] 日期:2021-03-16 热度:136
用到的命令有 1、pvcreate (physical volume create) 2、vgcreate (volume group create) 例子1:创建物理卷 pvcreate /dev/sdb1 -- /dev/sdb1 是一个分区! 如果在初始化的时候出错了,可能是因为分区的分区类型不正确,区的类型要求是8e(linux lvm) ------[详细]
-
shell脚本实现分日志级别输出的方法
所属栏目:[安全] 日期:2021-03-16 热度:56
shell脚本如何优雅的记录日志信息,下面让我们一步一步,让shell脚本的日志也变得高端起来,实现如下功能 ①设定日志级别,实现可以输出不同级别的日志信息,方便调试 ②日志格式类似为:[日志级别] 时间 funcname:函数名 [lineno:行号] 日志信息 ③不同级别[详细]