- 博客(10)
- 收藏
- 关注
原创 动态令牌离线生成机制探究(2FA & TOTP)
前言也许你用过银行的密码器,以工商银行的网银电子密码器为例,它长这样:可能你以为它是会联网的,毕竟你只要输入转账页面给的一串数字,然后它就会生成一串六位数的一次性口令,你把它输入到转账页面的验证码中,你的钱就转出去了。但是,实际上它是不联网的,你将它放入断网的地方它照样能生成一次性口令,这是如何运作的?2FA2FA,全称 Two Factor Authentication,中文名叫 双重因素认证,便是里面的核心技术。字面意来理解,双重因素认证,即认证需要用到两重因素。比如,你在银行 ATM 取钱
2021-06-14 16:06:46
2968
2
原创 【过于硬核慎入】这是我遇到过的最强反爬虫(反反爬虫教程)
https://www.passkou.com/阅读本文前在阅读本文前,你需要具有以下所有知识,否则你无法读懂:HTML + JS 基础HTTP 基本知识简单的密码学知识(MD5、AES)浏览器调试工具使用高中英语以上水平强记忆力强逻辑思维能力你会学到什么在阅读本文后,你会学到一些常见的反爬虫方式,以及如何阅读被混淆后的 JS 代码。免责声明本文仅供学习研究使用,请勿将此技术用于违法用途。起因我从某个视频网站(会引起版权争议故不透露地址)上,想把他的视频下载下来,然后发现.
2021-06-13 12:10:43
2251
5
原创 HTTP状态码滑稽表情包
200 OK请求成功时,最常见的就是这个状态码。202 Accepted服务器已接受处理,但未处理完成。与之相似的是 201 Created,表示服务器已接受并创建新的资源。204 No Content常见于 HEAD 请求,服务器未返回响应体,只有响应头。206 Partial Content常见于范围请求的响应,表示响应体只是部分资源,资源范围由响应头 Range 规定400 Bad Request客户端请求有误,例如不遵循 HTTP 规范,或是请求参数有错误。403 Fo
2021-05-31 12:48:34
1665
原创 JS 中 Array.prototype.sort() 的坑
情景今天刷 LeetCode 的时候,有一道题是需要先给数据排序再进行运算,因为重点不是排序所以我直接使用了 JS 中的 Array.prototype.sort() 方法,结果答案一直不正确,我以为是主要算法出问题了,然后看了下和正确答案是一样的,就找不到是什么原因。然后我把代码搬到 VS Code 里头调试,发现数组并没有按照数字大小排序,代码如下:const arr = [1, 100, 21, 23, 3]arr.sort()console.log(arr) // [ 1, 100, 21
2021-05-28 12:33:57
243
原创 推荐自己写的 PicGo 聚合图床插件及 Markdown 写文章图像解决方案
前言之前就装了 PicGo ,这是一个各种图床、OSS 甚至 GitHub 的图片托管一站式管理的软件(即一键上传图片)。今年年初我上网找了各种图床,最后敲定 聚合图床 ,买了基础版会员(100 元/年)。选它的原因主要因为一是定价合理,仅基础版就有 10万的图片数量,二是支持 API 上传(虽然现在不用了)。相比之下隔壁某个图床直接一棒子打死不让上传 ACG 相关的图片,贵的要死图片数量还少。然后最近偶然发现目前非常好用的 Markdown 编辑器 Typora 支持使用 PicGo 一键上传文中所
2021-05-22 11:24:09
1007
6
原创 网站的几种识别用户身份的方法(Cookie 机制)
在网站应用中,由于 HTTP 协议是无状态的,识别不同用户的主要方法是通过 Cookie,即用户在认证后发送它让浏览器存储,之后每一次请求中再附带这个请求头信息发回服务器,这样服务器便知道是哪位用户发出的请求。具体实现方法有哪些呢?下面我将为大家介绍几种常见的通过 Cookie 来识别不同用户的方法。第一类:信息存用户侧第一类的方法是将用户的部分信息存在浏览器的 Cookie 中(如用户 ID)。那么首要问题就是要防止被人为修改,因此实现方法有两种。方法一:Base64 数据 + HMAC首先,我
2021-05-18 17:28:53
5516
原创 一些程序设计模式的整理
一些个人的整理,仅仅是一些简单的描述,如需深入了解请查找相关资料。举了一些现实生活中的例子来方便理解,仅供参考,如有错误欢迎指出!设计模式原型模式所有对象都有他的原型,当需要创建该对象时,仅需克隆原型即可实现。举例:造一辆车子,你只需要拿到设计图,根据设计图来制造,而不是去找一辆车子然后分析它的结构来制造。伪代码:// 看做是设计图(原型)class Car { constructor(brand) { this.brand = brand; }}// 可以把 new
2021-03-21 23:00:14
207
原创 【Python】b站弹幕系统改版后爬虫方法(bilibili_api)
前言以前b站弹幕接口是这个:https://api.bilibili.com/x/v1/dm/list.so返回的是 XML 格式的信息,非常容易解析。但是,不知道什么时候开始,b站弹幕接口进行了更新,这个接口现在也被废弃了,改成了下面这个:https://api.bilibili.com/x/v2/dm/web/seg.soF12调试一看,好家伙,返回的是二进制流,根本就看不懂。这意味着,现有的通过直接访问API弹幕爬虫方法全部失效。那么怎么爬虫呢?经过我的解析,得出了这个结论:https
2021-02-10 21:12:29
3847
7
原创 纯前端白嫖b站服务器资源
叔叔我啊,最讨厌白嫖我服务器资源的人了前言最近刚完成自己的博客系统,然后想办法白嫖了b站服务器资源来达到优化前端显示,又不需要占用自己服务器的资源。一、获取视频信息b站部分API支持JSONP技术,简单来说就是网页中加载外部脚本是不受跨源限制的,利用服务端动态生成脚本来达到跨源获取数据的目的。以b站获取视频信息为例子:JSONP GET https://api.bilibili.com/x/web-interface/view?jsonp=jsonp&bvid=BV1Bf4y1Q7QP&a
2021-01-31 23:32:26
1048
原创 b站弹幕新版API数据格式规格研究
前言b站近期更新了弹幕接口返回的数据结构,我通过逆向JS代码进行研究,下面是研究成果。API调用GET https://api.bilibili.com/x/v2/dm/web/seg.so参数:键值oid分P编号,也称为cidtype1segment_index1返回请求正确:二进制数据流,需要解析后才能查看。请求错误:JSON格式,结构是b站标准API数据结构。并附有错误信息。返回数据流解析应进行逐个字节解析。数据包以单条弹幕为单位。以下
2021-01-31 21:53:52
2843
10
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人