自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python常见加密算法

MD5加密:全称:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。md5加密算法是不可逆的,所以解密一般都是通过暴力穷举方法,通过网站的接口实现解密。Python代码:import hashlibm = hashlib.md5()m.update(str.encode("utf8"))print(m.hexdigest())

2022-04-28 22:26:57 1491

原创 关于MYSQL

一、事务的特性:1.原子性,事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行2.一致性,几个并行执行的事务,其执行结果与按某一顺序串行执行的结果相一致3.隔离性,事务的执行不受其他事务的干扰,该事务执行的中间结果对其他事务必须是透明的4.持久性,对于任意已提交事务,系统必须保证该事务对数据库的改变而不被丢弃,即使数据库出现故障二、Mysql存储过程的原理:储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平

2022-04-28 14:38:28 208

原创 使用md5进行32位或16位大小写加密

接触爬虫总会遇到md5加密的时候,记录下:import hashlib str = '526f6bcd5661d393cade4e832523b5f8' def md5(key): res= hashlib.md5() res.update(key.encode("utf-8")) print("32位大写" + (res.hexdigest()).upper()) print("16位大写"+(res.hexdigest()).upper()) pr.

2022-03-29 13:17:15 2107

原创 猿人学第1题-------js混淆源码乱码

js混淆源码乱码

2022-03-28 23:17:38 485

原创 猿人学第13题-------入门级cookie

目标网站:match.yuanrenxue.com/match/13打开开发者工具:翻页时出现:通过查看发现cookie多了两个变量:这就是本次加密的参数,还是之前的方法,先顺着调用栈找它们生成的地方:却没有发现关于cookie的, 换个方向,是不是通过其他js文件来实现了加密呢?通过关键词全局查找,有相似的点进去看了最后都不是。即使清空了先前浏览器保存的cookie记录,但是cookie还是赋值了。最后通过fiddle抓包发现,https://...

2022-03-27 17:48:13 751 3

原创 猿人学第12题-------入门级js加密

目标网站:match.yuanrenxue.com/match/12打开控制台发现数据都在通过翻页发现有个参数m在变化可以通过调用栈进入查看:发现了m是如何产生的:btoa()是通过base64编码,接下来就是用python实现就可以了,sum = 0for i in range(1,6): str1 = "yuanrenxue" + str(i) str_ = base64.b64encode(str1.encode("utf-8...

2022-03-26 21:38:34 477

原创 python将字符串转换成字典

处理数据时遇到:{'controls': [], 'custom': '{"TotalNum": 12,"Table" :[{"infoid":"465754d5-a78d-449e-b8b1-8331bab8b5ef","infourl":"/xxxx/001001/001001/001001004/2022323/465754d5-a78d-449e-b8b1-8331bab8b5ef.html","index":"-19","title2":"美丽的地方","categoryname":"x

2022-03-25 22:42:17 959

转载 关于TCP连接的“三次握手”与“四次挥手”(下)

1.“四次挥手”的详解所谓的四次挥手即TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。以下为客户端主动发起释放连接的图解:挥手之前主动释放连接的客户端结束ESTABLISHED阶段。随后开始“四次挥手”:(1)首先客户端想要释放连接,向服务器端发送一段TCP报文,其中:标记位为FIN,表示“请求释放连接“;序号为Seq=U;随后客户端进入FIN-WAIT-1阶段,即半关闭阶段。并且停止在客户端到服务器端方向上发送数据,但是客户端仍然能接收从服务器端

2022-03-21 13:43:49 83

转载 关于TCP连接的“三次握手”与“四次挥手”(上)

一、TCP connection客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西;由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客户端发起,服务器接收的类似连接的通道,这个连接可以一直保持,http请求是在这个连接的基础上发送的;在一个TCP连接上是可以发送多个http请求的,不同的版本这个模式不一样。在HTTP/1.0中这个TCP连接是在http请求创建的时候同步创建的,http请求发

2022-03-21 13:36:52 84

转载 关于git的使用(十七)------操作标签

如果标签打错了,也可以删除:$ git tag -d v0.1Deleted tag 'v0.1' (was f15b0dd)因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。如果要推送某个标签到远程,使用命令git push origin <tagname>:$ git push origin v1.0Total 0 (delta 0), reused 0 (delta 0)To github.com:michaelliao/le

2022-03-21 13:02:03 246

转载 关于git的使用(十六)------创建标签

在Git中打标签非常简单,首先,切换到需要打标签的分支上:$ git branch* dev master$ git checkout masterSwitched to branch 'master'然后,敲命令git tag <name>就可以打一个新标签:$ git tag v1.0可以用命令git tag查看所有标签:$ git tagv1.0默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在

2022-03-20 21:35:26 218

转载 关于git的使用(十五)------Rebase

多人在同一个分支上协作时,很容易出现冲突。即使没有冲突,后push的童鞋不得不先pull,在本地合并,然后才能push成功。每次合并再push后,分支变成了这样:$ git log --graph --pretty=oneline --abbrev-commit* d1be385 (HEAD -> master, origin/master) init hello* e5e69f1 Merge branch 'dev'|\ | * 57c53ab (origin/dev,

2022-03-20 21:31:37 512

转载 关于git的使用(十四)------多人协作

当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。要查看远程库的信息,用git remote:$ git remoteorigin或者,用git remote -v显示更详细的信息:$ git remote -vorigin [email protected]:michaelliao/learngit.git (fetch)origin [email protected]:michaelliao/le

2022-03-20 21:26:21 100

转载 关于git的使用(十三)------Feature分支

软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。现在,你终于接到了一个新任务:开发代号为Vulcan的新功能,该功能计划用于下一代星际飞船。于是准备开发:$ git switch -c feature-vulcanSwitched to a new branch 'feature-vulcan'5分

2022-03-20 21:19:32 383

转载 关于git的使用(十二)------Bug分支

软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交:$ git statusOn branch devChanges to be committed: (use "git reset HEAD <file&g

2022-03-20 21:10:20 357

转载 关于git的使用(十一)------分支管理策略

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。下面我们实战一下--no-ff方式的git merge:首先,仍然创建并切换dev分支:$ git switch -c devSwitched to a new branch 'dev'修改readme.txt文件,并提交一个新的commit:

2022-03-20 20:58:16 131

转载 关于git的使用(十)------解决冲突

准备新的feature1分支,继续我们的新分支开发:$ git switch -c feature1Switched to a new branch 'feature1'修改readme.txt最后一行,改为:Creating a new branch is quick AND simple.在feature1分支上提交:$ git add readme.txt$ git commit -m "AND simple"[feature1 14096d0] AND simp

2022-03-20 20:38:00 1388

转载 关于git的使用(九)------创建与合并分支

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。

2022-03-20 20:32:40 99

转载 关于git的使用(八)------从远程库克隆

现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:$ git clone [email protected]:michaelliao

2022-03-20 20:11:49 231

转载 Git:将本地项目连接到远程(github)仓库流程

1.远程创建空项目(如果不想让项目被看到,可以选择private;如果创建的项目是教程类的,可以选择public以使得被公开)2.本地新建文件夹,进入文件夹后,右键选择“git bash here”,输入命令“ssh -T [email protected]”,以检查本地密钥是否已加到远程仓库,(如果没有下面的截图中的提示,则表明密钥没有配置完成或者密钥发生了变化,具体加密钥参照配置github密钥)3.在所在文件夹,右键gitbash,输入命令“git in...

2022-03-20 20:04:58 3660

转载 关于git的使用(七)------添加远程库

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:目前,在GitHub上的这个

2022-03-19 22:45:40 216

转载 关于git的使用(六)------删除文件

在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:$ git add test.txt$ git commit -m "add test.txt"[master b84166e] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:$ rm test.txt这个时候

2022-03-19 18:56:15 1380

转载 关于git的使用(五)------撤销修改

现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:$ cat readme.txtGit is a distributed version control system.Git is free software distributed under the GPL.Git has a mutable index called stage.Git tracks changes of files.My stupid boss still prefers SVN.在你

2022-03-19 18:46:14 420

转载 关于git的使用(四)------管理修改

现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。为什么说Git管理的是修改,而不是文件呢?我们还是做实验。第一步,对readme.txt做一个修改,比如加一行内容:$ cat readme.txtGit is a dis

2022-03-19 18:29:24 77

转载 关于git的使用(三)------工作区和暂存区

工作区(Working Directory)就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:版本库(Repository)工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。分支和HEAD的概念我们以后再讲。前面讲了我们把文件往Git版本库里添加的时候,是分两步

2022-03-19 18:18:22 294

转载 关于git的使用(二)------版本回退

回顾一下readme.txt文件一共有几个版本被提交到Git仓库里了:版本1:wrote a readme fileGit is a version control system.Git is free software.版本2:add distributedGit is a distributed version control system.Git is free software.版本3:append GPLGit is a distributed version

2022-03-19 17:27:51 113

转载 关于git的使用(一)------创建版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。第一步,选择一个合适的地方,创建一个空目录:$ mkdir learngit$ cd learngit$ pwd/Users/michael/learngitpwd命令用于显示当前目录。需要注意:如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,

2022-03-19 16:29:51 113

原创 关于scrapy的日志功能,logging

LOG_ENABLED 默认: True,启用 loggingLOG_ENCODING 默认: 'utf-8',logging 使用的编码LOG_FILE 默认: None,在当前目录里创建 logging 输出文件的文件名LOG_LEVEL 默认: 'DEBUG',log 的最低级别LOG_STDOUT 默认: False 如果为 True,进程所有的标准输出(及错误)将会被重定向到log 中。其中的 LOG_LEVEL ,Scrapy 提供 5 层 logging 级...

2022-03-17 23:36:12 93

原创 python切片

刚开始接触python时,对于切片总是懵懵懂懂的,现在写的时候感觉是会的,过了一段时间后再看到就不确定答案了,主要还是没有理解透,今天做个记录。一、 Python可切片对象的索引方式包括:正索引和负索引两部分,如下图所示,以list对象a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:二、 Python切片操作的一般方式一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时,默认第三个参

2022-03-16 23:17:18 109

空空如也

空空如也

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

TA关注的人

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