wananovo 发表于 2024-7-22 15:56

*东*用查询

**广**用查询**

**1.找到sn(AES)方法,解决captchaVerification和pointJson加密**


第一次验证码的位置




captchaVerification等于返回的token加上坐标,进行AES加密,sn为AES加密函数。

`sign`和`ticket`

​   

this.publickey 等于public请求返回的publicKey

e等于随机五位   `gbZzT`

a为rsa加密,**特别注意**:rsa只能用浏览器中的方法,不能用外部包的rsa算法, 会导致校验失败。

sign由wasm的方式调用signChi生成。

**2.通过egg.js编写获取sign的API接口**

前提:



由于sign是通过wasm的方式异步生成的,所以无法同步拿到,我们只能通过egg.js编写API接口异步返回。

1.首先创建一个egg项目

```shell
npm init egg --type=simple
cd <your-project-name>
```

2.在 /app/controller 目录下创建一个新的控制器文件 sign.js 并添加以下代码:

```js
const { Controller } = require('egg');

class SignController extends Controller {
async getSign() {
    // 在这里编写生成 sign 的逻辑
    const sign = 'example_sign';// 替换为实际的 sign 生成代码
    this.ctx.body = { sign };
}
}

module.exports = SignController;
```

本案例具体代码:



3.在 /app/router.js 文件中添加路由配置:

```js
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/get_sign', controller.sign.getSign);
};
```

4.运行 Egg.js 项目:

```shell
npm i

npm run dev
```

wananovo 发表于 2024-7-22 16:18

视频教程:https://www.bilibili.com/video/BV1xC4y1X7Ms/?spm_id_from=333.788&vd_source=3ac5022959cd8122d744f8d09c4b1bbf

ZXiuChaog 发表于 2024-7-22 16:24

可以的 这种思路感觉其他方面也会不错。

aoxuehanshuang 发表于 2024-7-22 16:53

不错试试怎样

12097312 发表于 2024-7-22 17:12

学到了,有帮助

xyseoer 发表于 2024-7-22 17:51

学学更健康

阿炎大魔王 发表于 2024-7-22 17:57

可以学到了

shenhai666 发表于 2024-7-22 19:30

这种思路感觉其他方面也会不错

lookermbz 发表于 2024-7-22 19:49

上手难度有点高

jackie_zx 发表于 2024-7-22 21:01

不明觉厉
页: [1] 2
查看完整版本: *东*用查询