Saber 酱的抱枕

Fly me to the moon

03/16
2021
软件

JS 的 MD5 库

最近做一个网站的下载器,发现它的请求头有个标记 sign,是对字符串进行 MD5 加密产生的 hash,所以我就找了个 JavaScript 的 MD5 库。

https://github.com/pvorb/node-md5

这个库主目录下的 md5.js 文件是 NodeJS 环境使用的,dist 目录里的 js 文件是浏览器环境里使用的。

吐槽下这个网站,不知为何它没有用 HTTPS,估计是因为这个原因所以搞了个 sign 验证。但是 sign 的计算是在前端做的,我直接从它的 js 源码里找到了加密算法,就像这样:

const key = 'asdasddsa'
const time = Date.now()
const sign = md5(key + time)

用一个固定的字符串做秘钥,加上发起请求时的时间戳生成 md5 作为 sign。(请求头里同时也要携带这个时间戳,服务器端再做验证)。不仅秘钥可以直接看到,而且时间戳也由我提供,我寻思这加密是加了个寂寞……

JS 的 MD5 库