零基础手把手教你写NFT抢购软

前言

由于之前写过几篇文章,但是个人不是很满意,所以这次我打算把所有的知识汇总成一篇文章。可能会有很多地方写的不是很好,欢迎大家评论指出,我后续修正。
个人vx:http://wc.ljlju.cn/4ZGETK

抢购软件原理

我们在点击抢购按钮的时候,会向平台的服务器发送HTTP请求,这条HTTP请求会携带你的账号信息(token或cookie)商品的id、数量、支付密码等等发送到服务器。服务器接收到请求后,会进行执行抢购的操作,然后再返回结果,告诉你是否抢购结果(抢购成功、库存不足、服务器异常……)。

我们的抢购软件,就是跳过了点击抢购按钮的步骤,直接向平台服务器发送抢购的HTTP请求,通过软件的循环发送,可以实现一秒钟发送几十条几百条抢购的HTTP请求,只要有一条HTTP请求被平台服务器处理成功并且返回结果为下单成功,则为抢到了商品。这种方式可比手动或者连点器强很多!!!

查看和分析HTTP请求

这里我直接用某台子进行学习讲解,大家切勿进行非法的操作。

打开下方网址:https://m.eryday.fun

点击键盘的F12,弹出调试窗口

image-20230413233711087

image-20230413233921711

接下来大家点击网络

image-20230413234328573

好了,这时候咋们点击我的,然后随便输入手机号、输入验证码、点击发送验证码按钮,这个时候我们可以观察到有这么一个接口

image-20230413234541337

这个就是你点击获取验证码按钮后,请求给后端的接口,我们接着点开他

image-20230413235012124

对于上图我们一般需要关注的点有下面三个:

  1. 请求的URL地址:https://m.eryday.fun/api/verify-code/send
  2. 请求方法:GET
  3. Content-type:application/json

这个是发送验证码接口,用户这时候还没有登录,所有请求头并没有token选项,后面会给大家讲到。

我们先点开负载看看里面是什么内容,负载里面的内容就是请求体

image-20230413235444703

通过观察,我们发下了一下信息:

mobile:"13333333333" (我们输入的手机号)
id: "Jo9lbMldS5Gf6naD5KbAzA" (不确定是什么参数)
type:1(类型,这个应该是固定的)
captcha:x526(我们刚刚输入的验证码)

我们再点开响应看看里面的内容

再点开响应可以看到登录的结果

image-20230413235826949

我们可以看到,这个就是点击**”发送验证码“按钮后,接口返回的信息。通过返回信息我们可以知道这个验证码是发送失败的,因为我们的手机号输入的比较6,触发了风控机制,接下来我们刷新页面**输入一个正常的手机号码,再点击发送验证码按钮,然后观察观察请求接口的情况。

image-20230414000311020

上面框住的四条请求,就是我们从输入手机号、验证码到点击发送验证码按钮这个过程的所有请求了,我们一一点开请求,看看他们之间是否有联系

image-20230414000543325

image-20230414001048312

image-20230414001118115

image-20230414000616048

相信大家已经发下了,上面我们未知的id的数据,就是获取图片验证码之后的返回的id。到此,我们就分析明白了,这个网站发送验证码的所有逻辑。接下来我们来缕一缕。

第一步:请求图片验证码接口,获取图片验证码

请求URL:https://m.eryday.fun/api/captcha/graph
请求方法:POST
请求头:content-type: application/json
请求体:{"type":1,"fontSize":20,"width":100,"height":40}
接口响应:
{"code": "0","data": {"id": "xV5ZjLU8QWS2wehcnNk1Mw","content": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAIAAACHGsgUAAAJnklEQVR4Xu2YWVBU2RnHfZmqTJKnzFuqkpf4MsnMvOButAYxBC03VHBDRR0bkUVBBdkFZW0FGtmhW5ahARGbRZaepkFBBEVwEGVrFQFBQFbZl+bkf7jtpbnQOE3NpCqk/3WqOPe759z79e985zvfZQXR6RdrBdfwv68ppTIoqeDvJh5frLVcucfVyl/8qrWLO2hJWoawQGqdud+zhhZQa2zuvBqb89UWu+KqRu447bUMYX2936O6sVXd8mNuuZ6Zt7plaVqGsH6/0XpkbELd0vdx+I+bbNQtS9MyhPW33S6Klk51i+xx7ebTfHXL0rQMYZ31EyNPsZeIsm9Mr6RIK9SGLFHLEBbOPmR05KnegWH5k7pvD3jaBCRzBy1JyxAWhLNvzTGfLzdYbfqB/6vEFKPlCes3kg6WFtLBWlhjY+TFC9I1t/JfFFZTEzl3jvB4c5pUyh32X1RLRy/KqBV6PLZdCEpb8teMW6GbXpQe0zaJNpW9fQpAEgnx8yOWlvS3ZmfPGa8Z1qtXKjru7mRggLbqamJrOwdcWRmZnGRnVHd0XJbJ/p2YuCYmxuT27YtSab5CoZyexq2ipiLWLTT5G/nsi7QRzrjvDnq5hGXkltYcdIphkZm5CSenlNzRi6pzqFPdJbT1odt4Fkrml505Q5GVlMyZohlWbKyKyO3bs8bcXJXRw4MEBKj6gYGkvV1cU7M9KUlSV9c5NISBPSMjstevLbKzj6Sntw8Oej3wOpV5qrGnkV/Kh1v6cfo9Iz1nc86yjoY8Dpl9i2Y5hUo2nPAPTJKxmLbbhux3iETHPz6fO1qD+vpIRQW5FJ+8LkJ/h0cUfsEutzjGDfvrFdeSf/peZLA2Zq1vie/LrpdTyil2omZYvr7EyookJpLCwlljba0KUFUVvRwdZfB95PNBqmt4eHbkJyXX1OwUix1lzq5yV1xefXAVPjkVOKXXpl+UXgwqCxqfGt/24zYYm/ubuZPnae+lCFQDweIChhTq8vUn/LIeVO+0C8Ut7mg1tbaSBw+ISEScnVW/YAvfdsPNXSftm/h8skt0nIHV9rHNXmoPf8KehDGWgNIA9iEaYGHvIArxyFu3VFywHGjIe/HxJDV1zuDY2GfXrt2tq5tjVJN3cdHBNFv/h/7oM5HlIHPIasgCrIy6DBhPZJyAMadxtuzWJNBBEyTL/2zkcMApep25H3blw59fGV+MQFMfiXV8+ZImnZAQbuLFpSBEuU1ksifJFFmke7ib4WKcYjw2OWaTawPH8ITgsmAYj6QfYZ+pAVZvL7l+nT44Koq8eUOUSroiaMpPeQFpEA0aHCRhYfnu7szuW1AFbx5vvnUKXCaVk/tS97Fbb33s+uqOasS56JlodfTqz+7E6elpfYsbW84EukVkIqyYTL/xpH9jc+fv1lt9vd8D4VNcTFfT03MOHTQnJ5pXiopoiEGKHoVpmqmz3Bl96Ssp4w+Ws7Sl9FzeudQXNBp42Ty9mcTPOqABVkMDEQjoS8LCaEC1tKje2TjzX6Hyctq3tqb9+nqMDPXyGp+a3dscpb5IWxN9HP6xFgBq6mt63ft6QjnR0N2QUpNilm5249ENtUkLqK2rz8Ay8KibyC8un9mGW8+ESOUfv9sXhP5KQ5p92IYUgr2BfIuN0d/PfRSi+GDawYTqBPTxXgbW/ab7CHzbPNuWgZbRyVHGaJhoyM7SAAvHXEQEPT+jo+nl/fvEzY0ehZmZBBGEowLuODrSWwUFJDjYRSBoAlMN8ij03iw6pZxW9o32YRljKmPyFHnvBt5NE3pQZtZnIoUh+JOeJ3FnzlXJM8X3pwVnPHPu3CFBQeT8eerFP7aJGXA7DtW5utLwkctpzaN2Si+g8Irw45Lj5a3l6FvnWDNcOgY7TmedRkDB+LD5IWO89NMldpYGWHl5RCgkPj4kLo5eIs0z64VAQxZj+tinEIJeIHCXSKQoNTTIXHLpQJodOmzWZBqiCcb4n+M339qM4H/e+ZwzERkSPxsrlZxMw8TwUNlft4QYmDwxO9GPBhc27s9mSFlezVrodNEo72Jvc4k5Tmf0j949CmeQB4qbiw+kHWCyAU4exsl7DffYWRpgIYUnJFBSYjG9RHyphzjTkmc+5bFbBYI8hcKCU8B9UutA/wbhyStFPujjZNmdvJuFhYAinwhiAYdGJ7Ddnzwh6el0UVxcuC9ctfPeSqObDp5vfnCRfWviG5dZwU+Q/knfzkeUy33r5wRYiGWEEvp4NeOPQbyBUaIRDkQYkdEY49D4bC7WAAsgEOgIrpwcGtBI84hvxA4gosKC43Z2dKsi34eGYsOi8kQ9hSqB85h3AwM7xOHH7lpj6w1PDCP4Nwo3Io++6HzpnH/VN1+YJeu1iqOwdga6zV8O5J1r1+iSYa8jNx5zi0dV9b57wEGQjmj6xvTKyNgEiizTy9FT7MnzyySsEuJErv9Qj35NZw27frkKyr2yvZK5ZE4AVlxY79/TjDgSGa/yNzycfiNFRpL8mZIPsZ6RQe3IX93dpK2N3srKwh1UnqinfEpKFD09uEQKi6msNBSmRBVVs64YRBtvjTi8jx9k4iA39HUzdSw8fKHKyNtng8AYxSHQeHnRdcECwYf2dlrAqMvQKhgJHlzMr8Qxu0+Y+bCwov6wS2yMZG6t/TlVva/CjvMr8ePeIAR1397UvYzD6ocSmQ8LmwkoZLzbnFUujVfIZKQhubLfIxCXY/ZOjx4RRWJZl7+oIqEWs5D6Y0RKh4AP5g6dZuc/nLIdsrBQzd7qe5nlpRe5yuSydI97ol7kav1I403R/4LROt1VXjtTzS0qFA1o6CC+GFjAND4xiXJ0t32YtsGFD8NjkmNv+96qG0HKKseKcRXRp36LzIeFvXXzJj3onHkfinmqvJ7Hu8v87CKemLGU84T4C7ucl2LNG58LdrZduEBLnuBgEhT3+niCEzw4lHKyrWOs4t3TWXxReihKUYJxPJkvIxsBGjqrjnozsNAuBt9B2vpireWzhhbuhEWF+tPzvifejk8LlC/4VBTXiFmX5pMi82GxGh+nGwFlOSIIMYXYQRGaGf5u2MaRIfHR1qXFMfSpdz5uoWGbYiTSM0o0FH4ze1GjUEa4yF1Yz6KeRnFHLCSUnaCDzchgQvnOIvvDP216BjRWxYsIVSjSqPrKHbpziDkl50sjrMWkUJCzZykyJHvNhfuvLqQnls5ftjtW1bes3OOKPs87sX9whDv6N9CSYP2/SgdLC+lgaSEdLC2kg6WFdLC0kA6WFtLB0kI6WFpIB0sL6WBpIR0sLfQff9KMdS4cH/oAAAAASUVORK5CYII="},"success": true,"ext": {"executionTime": "3","currentDate": "2023-04-14T00:02:42.023+08:00"},"msg": "操作成功"
}

第二步:发送验证码

请求URL:https://m.eryday.fun/api/verify-code/send
请求方法:POST
请求头:content-type: application/json
请求体:{"mobile":"13553232231","type":1,"captcha":"mhru","id":"xV5ZjLU8QWS2wehcnNk1Mw"}
接口响应:
{"code": "0","data": null,"success": true,"ext": {"executionTime": "390","currentDate": "2023-04-14T00:02:48.629+08:00"},"msg": "验证码已发送到你的手机,请查收"
}

通过简单的操作,我们就能分析出来,这个平台发送验证码是请求了哪个接口,提交了拿些数据。那么我们如果想通过软件的方式去实现,那么原理就是我们也去请求这些接口,只是把mobile这个参数的值,改成我们自己输入的手机号,即可模拟发送该接口。写抢购软件也是一样的道理,先找出点击抢购按钮的接口参数,我们在通过软件模拟出一样的参数,然后循环不断的像平台发送抢购请求,从而达到快人一步的目的。

接下来我希望大家可以举一反三,分析一下该平台登录接口的信息。

image-20230414001909688

通过分析登录的接口,我们就可以获取到用户的token的值,那么在后续的所有请求中,在请求头携带该token,就相当于是该用户发起的请求,平台是通过这个token,来关联这个请求到底是哪个用户发起的。

image-20230414002058316

我们可以看到后续的请求都会在请求体携带这个x-token(不同网站不同的命名),用来判断是哪个用户和是否是登录的状态。

常见HTTP请求

一般的HTTP请求为GET和POST请求。通常可以这样子理解,我需要向服务器获取数据的则为GET请求,我要提交数据给服务器的为POST请求。

例如:

GET请求:获取用户信息、获取商品信息。

PSOT请求:登录账号、下单商品。

HTTP请求又分为请求头响应体

GET方式常见请求头:

GET /login/person?name=liangjaing&password=123123 HTTP/1.1  //请求地址
Host: www.ljlju.cn //请求的目的地
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)  //浏览器类型
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive //可以不用理解

POST方式常见请求头(application/x-www-form-urlencoded

POST test/persion HTTP/1.1
Host: www.ljlju.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded //请求类型
Content-Length: 40
Connection: Keep-Alive
Cookie: xxxxxx
Token: xxxxxx //用户身份标识 拿到了token或者cookie就相当于登录了这个账号name=liangjiang&password=123123 //请求体

POST方式常见请求头(application/json

POST test/persion HTTP/1.1
Host: www.ljlju.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/json //请求类型
Content-Length: 40
Connection: Keep-Alive
Cookie: xxxxxx
Token: xxxxxx //用户身份标识 拿到了token或者cookie就相当于登录了这个账号{"name": "liangjiang", "mima": "123123"} //请求体

响应体就是服务器处理的结果,一般成功的code值为200,抢购的结果会在响应体中展现出来。

{"success":false,"code":20001,"message":"账户密码错误","data":{}}

手动模拟请求

如果我们最终是用易语言来编写抢购软件的话,建议用精易编程助手来模拟请求。

软件链接
https://wws.lanzouy.com/b0fft39wj
密码:c5cx

image-20230414002649570

image-20230414002558234

我们只需要将上面分析出来的接口的信息,填进去,点击发送请求即可,下面我模拟获取图片验证码的,请求体(提交数据)可以先点击查看源,再复制进去

image-20230414002811489

image-20230414002946685

image-20230414003038683

最后我们获取到的响应正文,和浏览器获取到的响应是一模一样的,这个时候我们手动复制content里面的内容,data:image/png…然后浏览器打开,就能看到图片验证码,我们接着模拟发送验证码的接口,将这次的图片验证码的id和正确的图片验证码作为提交数据。就可以模拟成功发送验证码的请求。

image-20230414003247286

image-20230414003515824

image-20230414003702247

这个时候我们的手机号成功接收到平台的验证码。

然后通过获取的验证码,再进行模拟登录接口,就能够获取到用户的token,从而进行后续的其他操作。这一步我就不演示了,希望大家可以举一反三。

提前获取抢购接口

接下来讲解怎么获取抢购的提前包

我们在写抢购接口的时候往往都得提前去获取,接下来教大家一个百试百灵也是最简单的获取提前包的方法

image-20230415011128832

我们点进去看看,记得分析接口。

image-20230415011356363

我先说抓提前包的思路

还是看这张图,我们需要做的就是在返回结果这里动手脚

首先我们要明白,是什么来控制网站的商品未寄售->寄售中->已售完这三个状态的变化的,其实就是这个返回结果

当我们点击商品进入商品详情的时候,接口会返回该商品的所有信息,当然也就包括了商品的寄售状态

image-20230415014913556

我们想要获取提前包,那么就可以在第三步的时候,拦截服务器返回的接口数据,将代表寄售状态的数据改成寄售中,或者直接修改系统返回的寄售时间。本来系统设置该商品的寄售时间为下午2点,那么我们把这个时间改成当前时间,那么这样子就可以获取提前包了。

我们可以看看这个平台的商品详情的返回数据

{"code": "0","data": {"id": "16","type": 1,"itemsLevel": null,"title": "KAJA纪念邀请盲盒 ","subtitle": null,"mainImgUrl": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png","mainImg": {"id": "89","sort": 0,"path": "res10/rs/product/20230405/aa0448d940058098.png","url": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png","mediaType": 1,"canDownload": false,"isMain": false,"props": {"width": 1024,"height": 1024}},"markingPrice": null,"price": 9.9,"logicStatus": 4, // 逻辑状态 重点关注"startTime": "2023-04-09T20:00:00.000+08:00", //开售时间 重点关注"endTime": "2023-04-10T00:00:00.000+08:00","issueNumber": 5000,"tags": [],"author": "","authorImgUrl": null,"issuer": "iFun官方","issuerImgUrl": "https://res10.eryday.fun/rs/content/20230220/7e64d39a4836b899.png","hasPreemption": true,"preemptionDate": null,"rebatePoint": "0","userCanPreemption": null,"introImgUrls": ["https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png"],"detailHeaderMedia": {"id": "96","sort": 0,"path": "res10/rs/product/20230409/9141040f48f6a397.png","url": "https://res10.eryday.fun/rs/product/20230409/9141040f48f6a397.png","mediaType": 1,"canDownload": false,"isMain": false,"props": {"width": 1024,"height": 1024}},"detailMedias": [{"id": "95","sort": 0,"path": "res10/rs/product/20230409/7dd4a6ab4e2da912.png","url": "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png","mediaType": 1,"canDownload": false,"isMain": false,"props": {"width": 1125,"height": 4897}}],"purchaseNotes": "数字文创藏品为虚拟数字商品,而非实物。仅限年满18周岁的中国大陆实名认证用户购买。数字文创藏品的版权由发行方和原创作者拥有,除另行获得版权拥有者书面同意外,用户不得将数字文创藏品用于任何商业用途。本商品一经售出,不支持退换。请勿对数字文创藏品进行炒卖、场外交易、欺诈或以任何其他非法方式进行使用。"},"success": true,"ext": {"executionTime": "3","currentDate": "2023-04-15T01:12:32.885+08:00"},"msg": "操作成功"
}

我们通过观察,可以发现通过修改上面的两个参数中的任意一个,都可以修改商品的寄售状态,从而提前获取抢购接口。

这个时候,咋们的抓包神器就得出场了,由于fiddler安装起来稍微复杂了一下下,这边为了方便演示,就先用另外一个软件,功能都是一样的,目的就是为了在服务器放回数据的这个阶段,将这个请求给拦截住,然后修改里面的数据,再将修改后的数据返回给平台。

我们先在文本框里将返回数据修改好,因为这个商品已经是售完状态了,所以改开始寄售时间肯定是不行了,我们直接改商品状态,先把4改成1

{"code": "0","data": {"id": "16","type": 1,"itemsLevel": null,"title": "KAJA纪念邀请盲盒 ","subtitle": null,"mainImgUrl": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png","mainImg": {"id": "89","sort": 0,"path": "res10/rs/product/20230405/aa0448d940058098.png","url": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png","mediaType": 1,"canDownload": false,"isMain": false,"props": {"width": 1024,"height": 1024}},"markingPrice": null,"price": 9.9,"logicStatus": 1,"startTime": "2023-04-09T20:00:00.000+08:00","endTime": "2023-04-10T00:00:00.000+08:00","issueNumber": 5000,"tags": [],"author": "","authorImgUrl": null,"issuer": "iFun官方","issuerImgUrl": "https://res10.eryday.fun/rs/content/20230220/7e64d39a4836b899.png","hasPreemption": true,"preemptionDate": null,"rebatePoint": "0","userCanPreemption": null,"introImgUrls": ["https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png"],"detailHeaderMedia": {"id": "96","sort": 0,"path": "res10/rs/product/20230409/9141040f48f6a397.png","url": "https://res10.eryday.fun/rs/product/20230409/9141040f48f6a397.png","mediaType": 1,"canDownload": false,"isMain": false,"props": {"width": 1024,"height": 1024}},"detailMedias": [{"id": "95","sort": 0,"path": "res10/rs/product/20230409/7dd4a6ab4e2da912.png","url": "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png","mediaType": 1,"canDownload": false,"isMain": false,"props": {"width": 1125,"height": 4897}}],"purchaseNotes": "数字文创藏品为虚拟数字商品,而非实物。仅限年满18周岁的中国大陆实名认证用户购买。数字文创藏品的版权由发行方和原创作者拥有,除另行获得版权拥有者书面同意外,用户不得将数字文创藏品用于任何商业用途。本商品一经售出,不支持退换。请勿对数字文创藏品进行炒卖、场外交易、欺诈或以任何其他非法方式进行使用。"},"success": true,"ext": {"executionTime": "3","currentDate": "2023-04-15T01:12:32.885+08:00"},"msg": "操作成功"
}

image-20230415015731322

我们先设置系统代理,再拦截响应

image-20230415015826491

image-20230415020329732

image-20230415020948373

发现状态改成了即将开售,那么我们继续改成2试试

image-20230415021054733

成功点亮购买按钮,我们点击立即购买。就能够获取到抢购的接口了。

image-20230415021228304

按照上面的思路,去分析抢购接口的请求参数、我们后续就可以通过软件生成对应的抢购请求,然后批量发送。

请求URL:https://m.eryday.fun/api/order/trading

请求头:

Accept: */*
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Content-Length: 61
Content-Type: application/json
Cookie: cna=c4bf69feb31f409c960ec48a4ee23f74; acw_tc=0b68a81a16814951542354451e2d0c5a97f1af858edf8feda8a6d03f44f5ba
Host: m.eryday.fun
Origin: https://m.eryday.fun
Referer: https://m.eryday.fun/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/112.0.0.0
x-app-type: 100
x-appversion: 1.0.9
x-appversionnum: 119
x-device-id: 16814957461176540747
x-device-type: 10
x-token: xxxxxxxxxx--xxxxxxxxxxx // 这里会携带token

请求体:

{"pid":"16","traceId":"487c83c5-bf6e-4c21-a12a-1039a3b30696"}这个pid就是商品id,可以通过浏览器的地址,有个product_details?id=16获取
那么下面的这个traceId,应该就是平台的加密数据了,那么这个又是下面的知识点了,但是这个后面通过解密发现其实就是一个UUID,相当于一个随机的字符串,我们在手动模拟请求的时候可以随便改几个数据,也可以发送成功

image-20230415021853585

这样子我们直接就拿到抢购接口了。大家可以找找其他平台练练手,这个还是很简单的。特别是该发售时间,建议先改这个。百分之99的平台都可以通过这个方法提前获取抢购接口。

破解接口加密的几种常用的方法

因为数藏台子都是赶鸭子上架的,大多数平台的加密措施其实做的并不是很好,也很多根本没有加密的,基本上的关于数藏平台的加密方式,都是相对比较简单的。

下面是比较常见的加密方式和他的一些特征:

MD5加密

这种加密方式是不可逆的,一般用在登录的时候,因为是不可以解密的,所以当你登录的时候将密码通过一定的规则MD5加密之后,传到服务器,服务器会从数据库中获取到你的密码,然后用相同的规则进行MD5加密(比如加一段特定的字符串),然后和你传过来的MD5进行比较,如果一致则登录成功。

假设我的密码是“123456”,一般网站做MD5加密的时候,会在密码后面拼接一串字符串变成“123456liangjiang666”,然后对123456liangjiang666进行MD5加密
加密后的数据为:b5f69f2a0b186354da715d6e80249e2b
这串加密的数据是无法解密的,但是不管加密123456liangjiang666多少次,最终的结果都是b5f69f2a0b186354da715d6e80249e2b

DES / AES 加密

DES 是一种使用密钥加密的算法。该加密算法是一种对称加密方式,其加密运算、解密运算需要使用的是同样的密钥(一组字符串)即可。

这个加密方式我们一般需要关注这三个点

  • Key:为 7 个字节共 56 位,是 DES 算法的工作密钥
  • Data:为 8 个字节 64 位,是要被加密或别解密的数据
  • Mode:为 DES 的工作方式

在JS逆向的时候只需要找到key即可,这块得在视频讲解。

RSA 加密

RSA 加密算法是一种非对称加密算法。

  • 通过公钥加密,使用私钥解密。私钥是通过公钥计算生成的。假设 ABC 三方之间互相要进行加密通信,大家互相之间使用公钥进行信息加密,信息读取时使用各自对应的私钥进行信息加密
  • 用户输入支付密码会通过 RSA 加密

JS逆向的时候找公钥和私钥,一般都会存在前端

base 64 伪加密

Base64 是一种使用 64 位字符来表示任意二进制数据的方法。base64 是一种编码方式而不是加密算法,只是看上去像是加密而已,上面说到的图片验证码,就是base64编码,这个无需解密,转换一下即可。

image-20230415125054608

image-20230415125022693

对于上面的平台的traceId加密其实就是上图这段,让我们问问chatgpt这是个啥玩意

image-20230415125718709

我们用软件生成一下就行了

image-20230415125832510

抢购软件的编写

编写抢购软件,可以选择很多语言,易语言、python、java啥的都是可以的,这块我打算放在视频上面讲解,或者去看看我前面几篇文章,我展示下用chatgpt写哈哈

image-20230415130622959

image-20230415130637799

直接拿下,用易语言编写的话直接软件可以生成,非常方便

image-20230415130914400

后续以视频的方式带大家入手抢购软和捡漏软

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3225.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32】HAL库:串口通信打印+SHT3x温湿度数据收集

操作系统:Windows 11 (x64) 微控制器:STM32F103C8T6 硬件外设: USB-to-TTL串口(CH340) 【STM32】标准库与HAL库对照学习教程八--串口通信详解__修成真的博客https://xiuchengzhen.blog.csdn.net/article/details/121429721 SHT3x温湿度模块…

PWA(Progressive web apps):Web技术实现类似原生应用 - 入门

PWA(Progressive web apps):Web技术实现类似原生应用 - 入门简介 前言 在(使用Google浏览器)访问一些网站时,有时右上角会弹出“安装应用”的按钮。 例如谷歌V8官网 如果我们点击“安装”,则会在桌面生成一个“快捷方…

通往AGI之路:揭秘英伟达A100、A800、H800、V100在高性能计算与大模型训练中的霸主地位

AGI | NLP | A100 | H100 | Nvidia | Aurora GPT| LLM | A800 | V100 | Intel | ChatGPT 日前,随着深度学习、高性能计算、大模型训练等技术的保驾护航,通用人工智能时代即将到来。各个厂商也都在紧锣密鼓的布局,如英伟达前段时间发布GH 200…

【Pyecharts】| 风电场运维可视化系统 | 文末送书

目录 一. 🦁 摘要二. 🦁 文章结构三. 🦁 所用开发工具与相关技术3.1 PyCharm3.2 Flask3.3 Pyecharts3.4 Jinja2 四. 🦁 设计与实现4.1 系统总体需求4.1.1 数据采集和处理4.1.2 可视化设计4.1.3 后台功能实现 4.2 系统用户模块的实…

document.ai部署教程

原项目链接 1.在code处选择Download ZIP 下载完成之后在合适的位置解压 2.下载Docker for Windows 下载地址 下载完成安装即可 注意,下载完成不要立即打开,不然会卡住 先检查几个设置 ①.打开任务管理器(CtrlAltDel)&…

wkhtmltox 中文显示一半_中文GPT闲聊对话生成模型 开源工作 包括 GPT和GPT2

bojone/CDial-GPT-tf​github.com 今天发现有一个朋友的github更新了一个新的项目,于是我点进去扫了两眼。首先必然还是把两个预训练语言模型的压缩包下载下来。跟随者这个项目的步伐我发现了一个超级厉害的项目。 thu-coai/CDial-GPT​github.com 在项目介绍中描述…

Docker部署Mysql数据库详解

目录 1. Docker部署Mysql 1.1 Mysql容器 1.1.1 创建Mysql容器 1.1.2 进入Mysql容器并登录Mysql 1.1.3 持久化数据 1.2 远程登录Mysql 1.2.1 修改root加密方式 1.2.2 在容器启动时配置加密方式为mysql_native_password 1.3 Mysql编码 1.3.1 Mysql编码问题 1.3.2 Mysql编码…

ChatGPT扩展系列之ChatHub解决被OpenAI 封号的终极解决方案

ChatGPT扩展系列之ChatHub解决被OpenAI 封号的终极解决方案 本节介绍了一个解决ChatGPT在中国大陆无法使用和担心被封号的问题的方法。近期有很多亚洲用户被封号,原因是有人滥用API接口或者批量注册账号,不符合官方规定。对于这个问题,提出了一个解决方法,可以在中国大陆无…

Docker系列 基于OpenAI API自建ChatGPT

转自我的博客文章https://blognas.hwb0307.com/linux/docker/4201,内容更新仅在个人博客可见。欢迎关注! 前言 我用帐号/密码使用chatGPT已经有一段时间。但是,我有几个私交较密的朋友,他们并不具备使用chatGPT的条件&#xff1b…

从开发到上线,三分钟拥有自己的 ChatGPT !

OpenAI 已经公布了 ChatGPT 正式版 API,背后的新模型是 gpt-3.5-turbo,这是 OpenAI 目前最先进的模型,响应速度更快,价格更便宜。 作为开发人员,我们还是希望通过 API 将 ChatGPT 和相关模型集成到自己的产品和应用中&…

基于Tushare量化分析示例

1. 量化神器Tushare介绍 大家都知道量化分析离不开数据支撑,那下面就简单说一下一个简单好用的量化神器——Tushare。 Tushare 提供免费的数据接口,包含沪深股票数据、财务报表数据、指数、基金、期权、期货、港股、美股、宏观经济等数据,甚…

零代码量化投资:用ChatGPT获取新浪财经上的股票实时行情

现在很多免费的股票数据库,比如akshare,其实是从新浪财经或者东方财富网站上爬取下来的。如果能直接从新浪财经或者东方财富网站上爬取数据,可以获取更全面更即时的信息。 可以在ChatGPT中输入提示词如下: 写一段Python代码&…

ChatGPT:搞『量化投资』我是认真的!

量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾…

如何利用ChatGPT学习量化投资?

引言 最近,ChatGPT持续火了很长时间,占领各大热点和头版头条,成为A股开年以来最大的热点之一。ChatGPT是OpenAI开发的一种语言生成模型,可以理解为智能问答机器人。最近围绕量化投资在上面试了很多问题,大部分回答还是…

ChatGPT在社工攻击和反钓鱼中的应用

概述 ChatGPT是一种基于神经网络的自然语言处理模型,可以生成自然流畅的文本或对话。在钓鱼攻击中,攻击者可以使用ChatGPT生成虚假电子邮件或消息,更好地伪装成受害者所信任的个人或组织,从而获取受害者的个人信息。这种行为对个…

看ChatGPT这形势,留给我们开发人员的时间不多了

程序员一直所做的工作是什么?恐怕想到最后,每个努力的程序员都是在让自己努力的走向失业。最近ChatGPT爆火,他能做什么?能写文章,写的很好,可以代替你发邮件,一直到发现OpenAI的深度加持&#x…

ChatGPT其实并不想让开发人员做这5件事情

前言 ChatGPT已经火爆了快半年了吧,紧接着国内也开始推出了各种仿制品,我甚至一度怀疑,如果人家没有推出ChatGPT,这些仿制品会不会出现。而很多人也嗨皮得不行,利用各种方法开始科学上网,用ChatGPT做各种觉…

让ChatGPT连接进互联网世界

大家知道ChatGPT是没有链接到互联网的,所以只能回答2021年之前的知识,对于这么强劲的大脑这有点可惜了,现在有办法了: 使用WebChatGPT插件(chrome) 安装插件: 上图是安装前 安装后的效果&…

chatGPT打不开问题(个人亲测有效)

chatGPT打不开问题(个人亲测有效) ChatGPT打不开 Access denied !Access denied !Access denied !相信今天很多国内的小伙伴们打开 Open AI ChatGPT 都会出现:“Access denied You do not have access to …

小狐狸ChatGPT付费创作系统V2.1.0独立版 +WEB端+ H5端 + 小程序端安装教程

播播资源针对ChatGPT付费创作系统V2.1.0提供最新的对应版本小程序端全套测试,上一版本增加了PC端绘画功能,绘画功能采用其他绘画接口-意间AI,本版新增了百度文心一言接口。后台一些小细节的优化及一些小BUG的处理,前端进行了些小细…