- 博客(131)
- 资源 (64)
- 收藏
- 关注
转载 hmac算法图解
一什么是HMACHMAC是一种使用单向散列函数来构造消息认证码的方法,其中HMAC中的H就是Hash的意思。HMAC中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC,如果将来设计出的新的单向散列函数,也同样可以使用。使用SHA-1、SHA-224、SHA-256、SHA-384、SHA-512所构造的HMAC,分别称为HMAC-SHA1、HMAC-S...
2019-08-31 16:02:12 8982 1
转载 python3 hmac算法简介
通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值,例如,判断用户口令是否正确,我们用保存在数据库中的password_md5对比计算md5(password)的结果,如果一致,用户输入的口令就是正确的。为了防止黑客通过彩虹表根据哈希值反推原始口令,在计算哈希的时候,不能仅针对原始输入计算,需要增加一个salt来使得相同的输入也能得到不同的哈希,这样,大大增加了黑客破解的难...
2019-08-31 15:57:31 2695
转载 python3 request模块 https certificate verify failed 错误
写了一个小程序,简单测试一个基于HTTPBasicAuthorization的REST API,结果该程序在Windows机器上报错:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)在Linux机器上报错:"bad handshake: Error([('SSL routines', '...
2019-08-31 13:42:09 1265
转载 linux内核arch目录,各个处理器的介绍
alpha 处理器Alpha 处理器最早由美国DEC 公司设计制造,在Compaq (康柏)公司收购DEC 之后,Alpha 处理器继续得到发展,并且应用于许多高档的Compaq 服务器上,HP (惠普)收购的Compaq ,Alpha 便为HP(惠普)所有,不过HP (惠普)已经放弃发展alpha 处理器。arm 处理器Arm 系列处理器 是英国Arm 公司设计的主流嵌入式32 位RISC...
2019-08-30 21:52:54 544
转载 python3 request模块 post请求四种方式
HTTP 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。常见的四种编码方式如下:1、application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-...
2019-08-30 20:06:04 33167
转载 docker --restart=always 参数 docker重启容器自动重启
创建容器时添加参数--restart=always后,当 docker 重启时,容器自动启动。使用方法:docker container update --restart=always 容器名字操作实例如下:[root@localhost mnt]# docker ps -aCONTAINER ID IMAGE COMMAND ...
2019-08-30 19:27:25 18208
转载 linux alpine 中telnet转移至busybox-extras
apk add busybox-extrasAlpine镜像中的telnet在3.7版本后被转移至busybox-extras包中,需要使用apk单独安装。现象Alpine版本为3.8, 不再有指向busybox的telent~ # cat /etc/alpine-release3.8.0~ #~ # ls /usr/bin/ |grep -w busybox |grep ...
2019-08-30 15:43:24 1120
转载 linux ssh 隧道 tunnel 一般场景用法
SSH Tunnel顾名思义就是 SSH 安全隧道,平时看别人的相关帖子的时候很多时候可能看不太明白讲的是几个意思,这里我们约定一下说法的含义:“HostA 可以访问 HostB” 意思是在机器HostA上,可以通过 SSH Client 远程登陆到机器HostB上。 下边 Sequence 图中,箭头方向就是机器间可以访问的方向。 下边 Sequence 图中,命令在箭头...
2019-08-30 11:01:27 1368
转载 golang interface 转 string,int,float64
inter 是interface类型,转化为string类型是:str :=inter.(string)转为其他类型也类似testInt:=inter.(int)testFloat:=inter.(float64)示例如下:func interface2String(inter interface{}) { switch inter.(type) {...
2019-08-29 16:21:03 7220
转载 linux 根目录爆满 解决 /dev/mapper/centos-root 100%问题
一、使用 df -h 命令查看,发现/根目录的剩余空间为0。总共系统盘容量才20G。文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 20G 20G 20k 100% /devtmpfs 7.7G 0 ...
2019-08-29 14:00:07 19014 2
转载 golang 理解包导入
Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。Golang中包的定义和使用看起来十分简单:通过package关键字定义包: package xxx使用import关键字,导入要使用的标准库包或第三方依赖...
2019-08-29 13:28:36 418
转载 golang 第三方包的使用总结
golang 第三方包的安装的方法1. go get 安装# 比如要安装 "github.com/gin-gonic/gin"$ go get github.com/gin-gonic/gin注意:执行go get 命令需要先安装git命令,并配置git全局变量。2. 源码包安装由于国内网络问题,很多时候go get命令并不能安装,所以就需要手动下载源码包,然后拷贝到$GO...
2019-08-29 12:55:18 1326 1
转载 linux socket 缓冲区默认大小
1. tcp 收发缓冲区默认值[root@ www.linuxidc.com]#cat /proc/sys/net/ipv4/tcp_rmem4096 87380 416153687380 :tcp接收缓冲区的默认值[root@ www.linuxidc.com]#cat /proc/sys/net/ipv4/tcp_wmem4096 16384 4161...
2019-08-29 12:22:10 8399
转载 tcp socket 异常关闭总结
游戏测试过程中发现某些socket错误经常出现,以下是测试游戏服务器时通常考虑的case.服务器端1.Case:客户端程序正常运行的情况下,拔掉网线,杀掉客户端程序目的:模拟客户端死机、系统突然重启、网线松动或网络不通等情况结论:这种情况下服务器程序没有检测到任何异常,并最后等待“超时”才断开TCP连接2.Case:客户端程序发送很多数据包后正常关闭Socket并exit进程(...
2019-08-28 16:11:52 5848
转载 linux c 获取绝对路径各种方法分析
昨天肚腩群里有人问LINUX下C如何获取程序绝对路径。初看这问题,肚腩觉得很简单啊,就用getcwd或者argv[0]就可以了。写了个程序试试,#include <unistd.h>int main(int argc, char *argv[]){ char buffer[100]; getcwd(buffer, sizeof(buffer)); ...
2019-08-28 10:12:41 4853
转载 golang channel错误 send to non-chan type int/string
ch <- v // 表将v发送到ch中<-ch // 表从ch接收一个值v := <-ch // 表从ch接收一个值并存在新的变量v中易错的地方在于:var v intv <-ch // 报错:send to non-chan type int正确应该这样写:v = <-ch // 从ch中...
2019-08-27 15:21:46 3978
转载 golang time.After 超时使用理解
先上代码:package mainimport ( "fmt" "time")func main() { //closeChannel() c := make(chan int) timeout := time.After(time.Second * 2) // t1 := time.NewTimer(time.Second * 3) // 效果相同 只执行一次...
2019-08-27 08:31:29 2244
转载 golang select channel 多路复用
select多路复用这个概念与socket网络编程中的select、poll和epoll中的select概念类似。其含义是有N个channel,只要有一个channel上有数据产生,select就会立即监听到,然后接收数据,处理数据,如果有多个channel队列上都有数据流,则随机选取一个channel;如果N个channel上都没有数据流,则一直发生阻塞。例如, 火箭既可以倒计时发射,也可以...
2019-08-27 08:28:53 1101
转载 golang select关键字用法
select是go语言中常用的一个关键字,其用法也一直被用作面试题来考核应聘者。今天,结合代码来分析下select的主要用法。首先,我们来从官方文档看一下有关select的描述:A "select" statement chooses which of a set of possible send or receive operations will proceed. It looks ...
2019-08-27 08:11:03 490
转载 linux日志系统分析:rsyslog、syslog、klog
1. syslogd和rsyslogdsyslogd是Linux下的一个记录日志文件服务。从结构来说,可以理解为这个服务下面有一系列的子服务,例如mail、auth、cron、kern等等,这些子服务对外提供日志记录的功能,而当其它的程序或服务需要记录日志的时候,就可以直接调用这些子服务将日志记录到设定的地方。而配置这整个守护进程以及其子服务的地方就是/etc/syslog.conf这个文件。...
2019-08-26 20:53:03 1273
转载 linux 日志文件utmp、wtmp、lastlog、messages介绍
1、有关当前登录用户的信息记录在文件utmp中;使用who /var/log/wtmp 查看2、登录进入和退出纪录在文件wtmp中;使用w /var/log/wtmp 查看3、最后一次登录文件可以用lastlog命令察看;4、messages======从syslog中记录信息注意:wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要...
2019-08-26 20:48:30 7279
转载 docker 占用磁盘空间清理 无用数据卷删除
1. Docker System命令它可以用于管理磁盘空间。docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:dockersystemdfTYPETOTALACTIVESIZERECLAIMABLEIma...
2019-08-25 09:36:18 4511
转载 linux c va_list 32位和64位的差异
在将程序从32位机器移植到64位机器的过程中经常出现一些奇奇怪怪的错误,这里记录一下在使用可变参数的过程中导致在32位机器上正常运行的程序移植到64位机器上之后出现段错误的发现过程以及解决方案。首先看下面一段代码:#include <iostream>#include <stdio.h>#include <stdarg.h>#include &l...
2019-08-24 17:22:35 592
转载 linux 关机命令
在 Linux 系统下一些常用的关机/重启命令有 shutdown、halt、reboot以及init,他们都可以达到重启系统的目的,但每个命令的内部工作过程不同。一、使用 shutdown 关机或重启1. shutdown 命令介绍shutdown 命令安全地将系统关机,在系统关机前使用 shutdown 命令,系统管理员会通知所有登录的用户系统将要关闭,并且 login 指令...
2019-08-23 20:09:10 5818
转载 linux c glib中的hash table
Glib是一个C语言编写的库,它本身是Gnome的一个部分,后来Glib剥离出来,它为Gnome提供了一些操作字符串和常用数据结构的工具函数。这些好的工具函数既然可以提供给gnome,使用,自然也可以提供给我们使用。(靠,这逻辑,怎么这么像 和尚摸的,我自然也摸的,晕死啊)。最近看到我们老大用了Glib的hash表,在工期紧急的情况下解决了一个功能扩展的问题,所以我也就动了玩玩Glib的心思。...
2019-08-23 10:32:46 1138
转载 linux c 命令行解析函数 getopt getopt_long
平时在写程序时常常需要对命令行参数进行处理,因为参数少,自己解析就可以搞定;如果命令行个数比较多时,如果按照顺序一个一个定义参数含义很容易造成混乱,而且如果程序只按顺序处理参数的话,一些“可选参数”的功能将很难实现,这个问题在 linux 中用 getopt 等函数可以优雅地解决。一、查询linux命令手册:#include<unistd.h>#include<...
2019-08-22 21:28:53 369
转载 redis c客户端 hiredis
1.简单介绍hiredis是一个轻量级的访问redis数据库的c客户端。它是轻量级的不仅仅是因为它仅仅提供对协议的最小支持,而且它使用了一个高级别的极度类似于printf的api使它的级别远高于其最小代码库和缺乏绑定的redis命令。简而言之,就是更灵活。除了支持发送命令和接受命令,它还有一个与io层分离的回复解析器。它是一个简单灵活的流解析器,可以用于更高级别的语言绑定以实现有效的回...
2019-08-22 16:51:19 346
转载 redis 多数据库 database配置项解析
读到redis配置文件的时候,碰到databases 16我不明白了,然后开启百度和google的搜索介绍之门,下面把我读取文章吸取到的解释介绍如下。官方的解释:可用数据库数,默认值为16,默认数据库为0。刚开始咋一看没有明白,可用数据库的个数,redis一个实例不就是一个数据库吗。怎么还可以配置多个数据库。这是因为Redis下,数据库是由一个整数索引标识,而不是由一个数据库名称,可以直白...
2019-08-22 15:24:40 6514
转载 linux gdb 格式化结构体输出
set print addressset print address on打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,show print address查看当前地址显示选项是否打开。set print arrayset print array on打开数组显示,打开后当数组显示时,每个元素占一行,如果不打开的话,每个元素则以逗号分隔。这个选项...
2019-08-22 10:03:29 1241
转载 redis 使用rdb文件恢复数据
注意3个配置参数:appendonly nodbfilename dump.rdbdir /var/lib/redisappendonly 设置成no,redis启动时会把/var/lib/redis 目录下的dump.rdb 中的数据恢复。dir 和dbfilename 都可以设置。我测试时appendonly 设置成yes 时候不会将dump.rdb文件中的数据恢复。...
2019-08-21 20:38:40 481
转载 redis常用命令
一、Redis安全设置编辑Redis的配置文件redis-conf我的配置文件在:/opt/redis/redis-conf387 # Warning: since Redis is pretty fastan outside user can try up to388 # 150k passwords per second against agood box. This mean...
2019-08-21 19:29:31 216
转载 linux shell 统计文件数量
统计文件夹下文件的总个数(不包括文件夹)ls -l | grep “^-” | wc -l统计文件夹下所有文件(包括子文件)的总个数ls -lR | grep “^-” | wc -l统计文件夹下所有文件夹的个数(包括子文件夹)ls -LR | grep “^d” | wc -l具体解释:ls -l 列出列表-R 循环至子目录grep 过滤条件^- 文件^d 文件夹wc ...
2019-08-21 16:18:57 5817
转载 linux redis 配置详解
#redis.conf# Redis configuration file example.# ./redis-server /path/to/redis.conf ################################## INCLUDES ####################################这在你有标准配置模板但是每个redis服务器又需要个性设...
2019-08-21 15:36:26 240
转载 linux redis 三种启动方式
1.直接启动 进入redis根目录,执行命令: #加上‘&’号使redis以后台程序方式运行nohup redis-server &2.通过指定配置文件启动 可以为redis服务启动指定配置文件,例如配置为/etc/redis/6379.conf 进入redis根目录,输入命令:./redis-server /etc/redis/6379.co...
2019-08-21 15:26:46 111801 1
转载 linux docker中gdb调试断点不停
1、检测是否有调试信息 编译-g 去掉优化 -o02、warning: Error disabling address space randomization: Operation not permittedlinux 内核为了安全起见,采用了Seccomp(secure computing)的沙箱机制来保证系统不被破坏。它能使一个进程进入到一种“安全”运行模式,该模式下的进程只能调用...
2019-08-21 15:03:43 1355
转载 linux 源码目录结构 文件系统目录结构
学习Linux也有一段时间了,具体来整理一下Linux源码的目录结构和文件系统的目录结构,以便加深记忆。一、Linux源码的目录结构首先上一张截图,如下所示:再看各个文件的介绍,借用一下其他资源。arch:这个为目录是架构相关,里面存放了许多CPU架构,比如arm,x86,MIPS,PPC等,处理器原厂提供一套Linux内核的源码,那么在这个目录下都有一套针对具体处理器CP...
2019-08-21 14:12:12 938
转载 linux gdb调试问题汇总
1. 宏调试在GDB下,我们无法print宏定义,因为宏是预编译的。但是我们还是有办法来调试宏,这个需要GCC的配合。 在GCC编译程序的时候,加上-ggdb3参数,这样,你就可以调试宏了。另外,你可以使用下述的GDB的宏调试命令 来查看相关的宏。info macro – 你可以查看这个宏在哪些文件里被引用了,以及宏定义是什么样的。 macro – 你可以查看宏展开的样子。2. 找...
2019-08-21 13:29:55 463
转载 linux 问题 value too large for defined data type 解决方案
在共享文件夹下make文件的时候总是出错,错误提示为:Value too large for defined data type。在查阅了好多资料之后,发现是在mount出现了问题,如果安装了VMware Tools,也可能会在自动挂载的时候出现同样的错误。解决办法:在mount的时候加上“nounix,noserverino”参数通过以下命令打开vmware-toolscd /et...
2019-08-21 12:33:46 3236
转载 linux elf 文件加密
ELF头的各个字段如下:#define EI_NIDENT 16 typedef struct{ unsigned char e_ident[EI_NIDENT]; //目标文件标识信息 Elf32_Half e_type; //目标文件类型 Elf32_Half e_machine; //目标体系结构类型 ...
2019-08-20 16:24:19 1392
转载 python3 命令行参数
Python有几种使用命令行参数的方法,这里介绍一种最基本的。用sys的sys.argv来获取命令行参数: sys.argv 是命令行参数列表。 len(sys.argv) 是命令行参数个数。 注:sys.argv[0] 表示脚本名。实例test.py 文件代码如下:#!/usr/bin/python3 import sys print ...
2019-08-20 12:38:09 618
字体wps.zip 用于linux wps 使用
2020-03-16
Nat_Type_Tester_.rar
2019-12-26
msfupdate.erb
2019-11-04
fuzz工具 teenage mutant ninja turtles
2019-01-14
Sybase ASE 12.5.4 PC 客户端
2018-12-12
Win32 OpenSSL
2015-04-18
ActivePerl
2015-04-18
编写 Debugging Tools for Windows 扩展 实例
2014-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人