scapy的使用
用法ARP函数ARP().display()来查看ARP函数用法。
用法:
[ ARP ]hwtype= 0x1 硬件类型ptype= 0x800 协议类型hwlen= 6 硬件地址长度plen= 4 协议地址长度op= who-has who-has查询hwsrc= 00:0c:29:6a 源MAC地址psrc= 192.168.1.53 源IP地址hwdst=00:00:00:00:00:00 目标MAC地址pdst=0.0.0.0 向谁发送请求
IP/ICMP的方式使用IP().display()来查看格式
[ IP ]version=4 版本:4ihl= None 首部长度tos= 0x0 服务len= None 总长度id= 1 标志flags=frag= 0ttl=64 生存时间proto= hopopt 传输控制协议 IPV6逐跳选项chksum ...
算法与算法复杂度
[toc]
算法概念为了定义某问题,必须给出一系列的运算规则,这一系列的运算规则是有限的,表达了求解问题方法和步骤,这就是算法。
一个算法可以用自然语言描述,也可以用高级程序设计语言描述,也可以用伪代码描述。本书采用C语言对算法进行描述。
基本特征有穷性,算法的执行必须在有限步内结束。
确定型,算法的每一步骤必须确定无二义性的。
输入,算法可以有0个或多个输入。
输出,算法一定有输出结果。
可行性:算法中的运算必须是可以实现的
算法复杂性概念一个算法的优劣主要从算法的执行时间和所需要占用的储存空间两个方面衡量。
对于算法的时间复杂性,采用算法执行过程中其基本操作的执行次数,称为计算量来度量
算法中基本操作的执行时间和所需要占用的存储空间两个方面衡量
对于算法中的时间复杂度,采用算法执行过程中其基本操作的执行次数,称为计算量来度量
算法中基本操作的执行次数一般是与问题规则有关的,对于结点个数为n的数据处理问题,用T(n)来表示算法基本操作的执行次数。
因素
输入数据项数目
输入数据分布
实现算法
使用数据结构
评价(1)合理选择一个或几个操作作为“标准操作”。
(2)计算量=给 ...
常见密码的识别
前言 每个算法都有其对应的特征,对于一些较小的网站,往往直接引用这些官方算法,没有进行魔改等其他操作,这种情况下,如果我们能熟悉常见算法的特征,通过密文就能猜测出使用的哪种算法、编码、混淆,将会大大提高工作效率!在 CTF 中通常也会有密码类的题目,掌握一些常见密文特征也是 CTFer 们必备的技能!
本文将介绍以下编码和加密算法的特征:
编码:Base 系列、Unicode、Escape、URL、Hex;
算法:MD5、SHA 系列、HMAC 系列、RSA、AES、DES、3DES、RC4、Rabbit、SM 系列;
混淆:Obfuscator、JJEncode、AAEncode、JSFuck、Jother、Brainfuck、Ook!、Trivial brainfuck substitution;
其他:恺撒密码、栅栏密码、猪圈密码、摩斯密码、培根密码、维吉尼亚密码、与佛论禅、当铺密码。
编码系列Base 系列编码
Base64 是我们最常见的编码,除此之外,其实还有 Base16、Base32、Base58、Base85、Base100 等,他们之间最明显的区别就是使用了不 ...
非对称加密原理
非对称加密核心概念和工作原理:非对称加密也称为公钥密码。
非对称加密需要两对密钥。通信双方各自准备一对公钥和私钥。其中公钥是公开的,由信息接受方提供给信息发送方。公钥用来对信息加密。私钥由信息接受方保留,用来解密。
数学基础非对称加密算法通常基于数学难题,例如大数分解(RSA)或椭圆曲线离散对数问题(ECC)。这些难题使得在已知公钥的情况下计算私钥非常困难。
特点主要优势
密钥分发更安全: 无需安全通道即可交换公钥。
数字签名: 可以使用私钥对消息进行数字签名,以验证消息的发送者和完整性。
身份验证: 可以使用公钥验证用户的身份。
主要劣势:
加密速度较慢: 相比对称加密,非对称加密的计算量更大,速度较慢。
密钥管理更复杂: 需要安全地生成、存储和管理密钥对。
mysql数据清洗
数据库清洗1.流程
确认数据是否拷贝
原始数据是否具有唯一ID
清洗数据中的错误值(填写错误、逻辑错误)
清洗数据中异常值
清洗数据中的缺失值
2.字段选择 通常在采集到的原始数据中,将姓名或其他字符串的字段不选入最后分析的数据库中
在实际项目中,如果客户有历史记录,应提取越多字段的数据越好
另外,还需处理数据整合的问题,如数据单位不一致、数据重复等
字段数据重复:单个字段数据重复、多个字段数据重复
3.主要工作噪声消除噪声包括错误值(以类别字段为主)和异常值(针对连续变量)
噪声会使后期分析结果产生很大偏差,必须对噪声进行有效识别和处理
缺失值处理人工处理
软件自动处理
4.错误值及异常值处理方法软件及人工结合的方法
错误值:
无论分类变量还是连续变量,均先检查数据的分布情况,找到错误值。对于分类变量,检查与其它值是否有相似之处,若无,直接处理为空值/未知
异常值:
判断标准:1)最小最大分布法,按从小到大排序,选取最小的5%和最大的95%数据作为异常值;
2)标准分法:平均值+-3个标准差
...
mysql数据去重
在日常数据查询中,多有需要进行数据去重的查询,或删除重复数据的情况,以下罗列集中数据去重查询:
1、根据全部字段的去重查询:1select distinct * from table2、根据某些字段的去重查询(不考虑查询其他字段)
1select distinct c_name,c_year,c_month from table
或者:12select c_name,c_year,c_month from table group by c_name,c_year,c_month3、根据某些字段的去重查询(考虑查询其他字段)
如果其他字段所有结果值都想保留,建议直接用group by 和group_concat函数即可12select c_name,c_year,c_month,group_concat(',') c_values from tablegroup by c_name,c_year,c_month4、根据某些字段的去重查询,查询重复项以外的全部数据
一般去重是根据时间、ID等,如时间最新/ID最大/value最大等等;
此处示例重复数据中ID小的是原始项 ...
mysql数据查重
查找单个字段中的重复数据如果想要找出 email 重复的数据,可以基于该字段进行分组统计,并且返回行数大于 1 的分组:
12345678mysql> select email, count(email) from people group by email having count(email) > 1;mysql>|---------------|------------||email |count(email)||---------------|------------||lisi@test.com | 2||wangwu@test.com| 3|
查询结果显示有两个邮箱地址存在重复情况。如果想要查看完整的重复数据,可以使用子查询或者连接查询:
1234567891011121314151617181920212223242526272829303132333435363738mysql> select * from people where email in ( select ...
mysql数据导入
CSV数据导入创建数据库和表在导入CSV数据之前,需要创建要导入数据的数据库和表。使用MySQL Workbench可以通过GUI的方式创建数据库和表,也可以使用以下命令在命令行中创建:
12345678CREATE DATABASE testdb;USE testdb;CREATE TABLE testtable ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT, PRIMARY KEY (id));
SQL
Copy
以上命令将创建一个名为testdb的数据库,并在其中创建一个名为testtable的表,表中包含id、name和age三列,其中id是主键。
导入CSV数据在创建了要导入数据的数据库和表之后,可以开始导入CSV数据。有多种方式可以导入CSV数据,以下分别介绍这些方式。
使用LOAD DATALOAD DATA是MySQL提供的一个用于导入数据的命令。使用LOAD DATA可以从本地文件系统中导入CSV数据,也可以从远程服务器中的文件中导入CSV数据。
从本地文件系统中导入数 ...
pymysql操作
一、查询操作1.导入pymysql1import pymysql
2.创建连接对象调用pymysql模块中的connect()函数来创建连接对象,代码如下:
1conn=connect(host,port,user,password,database,charset)
host:连接的mysql主机
port:连接的mysql端口
user:连接的用户名
password:连接的密码
database:连接的数据库
charset:采用的编码方式,推荐utf-8
连接对象说明
关闭连接 conn.close()
提交数据 conn.commit()
撤销数据 conn.rollback()
3.获取游标对象获取游标对象的目的就是执行SQL语句,完成对数据库中的增、删、改、查操作。代码如下:
1cur = conn.cursor()
游标操作说明
使用游标执行SQL语句:execute(opertion [parameters])执行SQL语句,返回受影响的行数,主要用于执行insert、update、delect、select等语句。
获取查询结果集中的一条数据:cur.fe ...
Mysql范式
三范式(一)概念
设计关系型数据库时,遵行不同的规范要求,设计出合理的关系型数据库,这些数据库被称为不同的范式,范式越高,冗余越小。
(二)数据冗余
数据之间的重复情况
(三)范式划分
一般存在六种范式:
(1) 第一范式
(2) 第二范式
(3) 第三范式
(4) 巴斯-科德范式
(5) 第四范式
(6) 第五范式(完美范式)
日常生活中一般只需满足三范式即可
一、第一范式强调字段的完整型:即一个字段不能分成其他几个字段
二、第二范式满足一范式的同时,另外包含两个要求
一是表中必须有一个主键
二是非主键字段必须完全依赖主键,而不是只依赖主键的一部分
三、第三范式满足二范式的同时,要求非主键字段必须直接依赖于非主键字段B,非主键字段B依赖于主键的情况。
即存在传递依赖








