快捷指令和 Auto.js 怎么做加密:用哈希接口补上签名能力
如果你本地就是标准后端项目MD5、SHA256、HMAC 这些东西直接本地算就行根本没必要多绕一层 HTTP。但有些场景不是这样。比如快捷指令、Auto.js 这种环境发请求很方便拼参数也不难偏偏目标网站或者接口多了一步签名校验。这时候问题就来了不是你不会算而是你当前这个环境不适合补一套本地加密逻辑。这个哈希接口更适合解决的就是这种问题。这个接口适合什么场景接口文档https://apizero.cn/marketplace/hash接口入口https://v1.apizero.cn/api/hash它支持MD5、SHA-1、SHA-256、SHA-384、SHA-512SHA3-256、SHA3-512、RIPEMD-160、WhirlpoolCRC32、CRC32B、Adler-32HMAC 签名hex/base64输出但这篇不想再把算法列表抄一遍。这接口最合适的场景其实很具体你在快捷指令里抓某个网站内容但它请求前要签名你在 Auto.js 里调某个接口但它的参数要先做哈希你在机器人框架里能发 HTTP但官方没给现成加密能力你不是不会写而是当前环境补本地加密不划算所以重点不是“它支持多少算法”而是当前环境能不能直接拿它补签名能力。场景一快捷指令抓网站内容结果卡在签名上这个场景最典型。比如你在快捷指令里做一个内容获取流程用户输入一个关键词快捷指令去请求某个网站或接口把返回结果整理后展示前两步都很顺。问题是第三方接口并不一定让你直接调。有些站会要求某个参数先做 SHA256某个 header 要带 HMAC 签名请求体和时间戳拼接后再算摘要这时候快捷指令最尴尬的地方就出来了请求你会发参数你会拼但真让你在里面补一套稳定的 SHA256 / HMAC不一定顺手这种时候最省事的做法就是把哈希接口当成一个中间步骤流程先在快捷指令里拼好待加密文本请求哈希接口拿到签名结果再带着签名去请求目标网站也就是说你不是在快捷指令里“实现算法”而是在快捷指令里“调用加密能力”。一个真实一点的例子假设某网站请求前要生成这样一个签名串timestamp1715500000path/api/searchkeywordcoffee它要求你对这段文本做algorithmsha256encodinghex那你在快捷指令里就不用自己实现 SHA256只需要先请求GET /api/hash?texttimestamp%3D1715500000%26path%3D%2Fapi%2Fsearch%26keyword%3Dcoffeealgorithmsha256encodinghex HTTP/1.1 Host: v1.apizero.cn Accept: application/json拿到结果后把这个摘要塞回目标接口的sign参数里再发正式请求。这样写下来快捷指令本身只负责流程不负责加密实现。场景二Auto.js 请求接口参数里偏偏要 HMACAuto.js 这边更常见的不是“单纯算个 MD5”而是请求接口时要补 HMAC。比如你在 Auto.js 里做一个自动化请求先登录再拉数据最后提交结果其中某一步接口要求你带一个签名比如把body timestamp nonce拼起来用密钥做HMAC-SHA256再把结果放进请求头这时候如果官方没给现成签名函数你就会卡在这个地方。继续自己在 Auto.js 里补一整套 HMAC 逻辑不是不能写但很多时候没必要。尤其你只是想把事情做通而不是在脚本环境里再维护一套加密实现。这个时候就很适合直接调哈希接口。请求示例GET /api/hash?textbody%3Dabc123%26timestamp%3D1715500000%26nonce%3Dxyzalgorithmsha256hmac_keymy_secret_keyencodingbase64 HTTP/1.1 Host: v1.apizero.cn Accept: application/json返回结果拿到以后直接回填到你后续请求头里比如X-Sign: xxxxxxxxx这样 Auto.js 只要会发 HTTP 请求就够了。这两种场景里真正有用的是这几个参数在这篇的使用场景里真正要关心的其实只有四个东西text你要计算的原始文本algorithm比如md5、sha256encodinghex或base64hmac_key如果要做 HMAC 才传这个接口最实用的点就在这里普通哈希不传hmac_keyHMAC 签名传hmac_key想看得直观点用hex对方接口要求更紧凑结果就用base64机器人框架这类场景也能顺手补上之前我做某些机器人框架接网站接口时也遇到过类似问题能发请求能收消息能做简单逻辑但官方没现成加密能力这种场景本质和快捷指令、Auto.js 一样缺的不是“会不会发请求”缺的是请求前那一步签名。所以这种哈希接口本质上就是一个外接能力补丁。这种场景下代码就不用硬写 SDK 了当你当前环境不方便本地做哈希/HMAC 时怎么通过一个 HTTP 接口把能力补进去。这个场景下真正有价值的不是 SDK而是调用思路先拼待加密文本再请求哈希接口拿结果回填正式请求够了。小结它更适合快捷指令、Auto.js、机器人框架这类环境请求会发参数会拼但目标网站偏偏又多了一步签名或加密。