常见密码的识别
前言 每个算法都有其对应的特征,对于一些较小的网站,往往直接引用这些官方算法,没有进行魔改等其他操作,这种情况下,如果我们能熟悉常见算法的特征,通过密文就能猜测出使用的哪种算法、编码、混淆,将会大大提高工作效率!在 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数据导入
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数据。
从本地文件系统中导入数 ...
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 ...
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 ...
js常用函数
代码执行函数eval()将字符串当作js代码输出;
12var s = "document.write("My name is AJEST")";eval(s);
内置函数JavaScript 提供了一些全局可用的内置函数,可以直接在代码中使用,无需任何额外导入。
打印/输出函数 :文字输出12var s = 'My name is LiHua'document.write(s)
注意:在文档加载后使用 document.write 会覆盖整个文档。
控制台输出1console.log(s)
弹出函数警告框1alert("中二病也要谈恋爱");
显示一个带有指定消息的警告框。
确认框12var flag = confirm("你喜欢我吗?");console.log(flag);
显示一个带有确认和取消按钮的确认框,返回布尔值,代表用户的选择
输入框12var flag = prompt("你喜欢我吗?");console.log(flag);
显示一个带有输入框的对 ...
js运算符
一、算数运算符
算数运算符
含义
+
加法
-
减法
*
乘法
/
除法
%
求余数
++
自增
—
自减
注意:
a++与++a:a++是先使用a,再自加;++a是先自加,再使用。
二、赋值运算符12var a = 10;a+=3
三、关系运算符
关系运算符
说明
>
大于
<
小于
>=
大于等于
==
等于
!=
不等于
===
全等
!==
不全等
js数据类型
原始类型数字类型Javascript 没有整型和浮点型,只有一种数字类型,即number类型。
12var x = 10;var y = 20;
字符串类型表示一系列文本字符数据。由Unicode字符、数字、标点组成的序列。首尾由一对单引号和双引号。
1console.log("\u6B22\u8FCEl来到\"Javascript 世界\"")
布尔类型布尔类型,仅有两个值:true和false.true用1表达,flase用0表达。
undefined未定义,只做声明,未初始化







