2014-08-31 17:40
我在 @知乎 回答了【你究竟是什么原因喜欢上安全技术,它给你的生活带来什么?除了技术你从中学到了什么?】:我看了《Matrix》后,又看了些关于未来信息世界的描述,再后来在《电脑报》看到一篇安全技术科普,然后我想:新生的世界不会很有秩序,如果要生活在里面,得学点武术… 🔗网页链接
2011-05-07 10:14
今天去敬老院。条件居然还真不错,远不似我想象的恐怖片里养老院的阴森形象。周围绿树环抱,边上就是一个别墅区。房间干净而明亮,壁纸地板,实木家具,电视冰箱洗衣机热水器一应俱全。伙食也好。感觉比如家、汉庭还胜一筹。
2012-04-06 19:55
人力价值的核心问题只有一个:这活儿世上有多少人能干?随着开发工具的进化,编码的门槛越来越低。但无论工具多易用,设计还是得拼人脑子。 //@王红阳: 转发微博
2023-07-30 13:24
回复@蕾娜漢默:主要是没接触过这个领域。一开始认为可能是视频解码的兼容性问题,花了很多时间在错误的方向上。之后又花了一些时间学习前端调试。对于熟悉这些的人应该半个小时就差不多了。//@蕾娜漢默:能让tk几个小时的混淆已经相当厉害了!
2023-07-29 20:10
我以前说过用 ffmpeg 下载在线视频的 HLS 流 🔗网页链接。不过今天遇到一个没办法直接下载的,ffmpeg 提示输入错误,Invalid data found when processing input。
把这个 HLS 链接丢给一些播放器也不能播放。看了一下 m3u8 的内容,用了加密。于是我就把里面的密钥下载了,又下载了里面一个 ts 文件,然后尝试自己解密。果然失败了,密钥不对。再一看,密钥是 256 位,但 HLS 加密是 AES 128。
分析了一下播放的网页,发现没用 HLS.js 之类常规播放代码,而是自己搞了一个类似的。他们的 m3u8 里引用的密钥本身也被加密了。JS 代码会先对加密的密钥解密,得到真实密钥。虽然他们把 JS 混淆了,但再怎么混淆 AES 代码的特征还是非常明显的。定位了 AES 代码,就容易找到合适的地方加一句 console.log,然后密钥就出来了。
把 m3u8 下载回来,修改其中的密钥,指向本地创建的真实密钥文件。然后用加上 -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto 参数的 ffmpeg 就能正常下载视频了。
但我要说的不是这个,而是——这种用 JS 在客户端做的加密,无论如何都能搞出来,像我这种对 WEB 前端很不熟悉的人也只花了几个小时,这么加密的意义何在?
我发现这个视频加密解决方案其实不是网站自己做的,而是买的。做内容的甲方一般都不懂技术,你说加密了,甲方一看好像确实加密了,你就可以赚到钱。