【发布时间】:2019-08-12 01:04:20
【问题描述】:
我有一个播放一些视频内容的安卓应用。该视频是 mp4,带有一些简单的自定义加密。 在android中,播放器(ExoPlayer)在播放时实时解密视频。
它使用这样的代码:
// overriding the function that reads the video file to insert the decryption
public int read(byte[] buffer, int offset, int readLength) throws FileDataSourceException {
// ...
// buffer[] holds the video bits, decrypt them here
buffer[offset] = (byte)(buffer[offset] ^ 1234);
// ...
}
}
我现在想添加对 Chrome cast 的支持 - 以便能够将视频从手机流式传输到电视。
但是查看 api 我看不到实现解密算法的方法。 据我所知,它支持未加密的视频或具有某些标准 DRM 的视频。
是否可以实现自定义加密,类似于上面的代码?
【问题讨论】:
-
如果您正在寻找 Chromecast 支持的 DRM,有一篇关于 ChocoTv 上 DRM 加密支持的可用博文。这将使 Chromecast 支持 Android 平台的 HLS AES-128 加密。查看此site 了解更多详情。
-
@jess 谢谢,我去看看。我希望避免使用标准的加密/drm 算法,并使用上面代码所示的简单方法(我刚刚添加了它)。但看起来我可能需要走这条路。
-
如果您正在寻找真正的安全性,除非您拥有数学博士学位,否则请放弃自己编写任何东西的想法。编写有效的加密机制的难度是巨大的。
-
@GabeSechan 实际上实现像 XOR 加密这样简单的东西非常容易,它可以防御 99% 的攻击者。剩下的 1% 会破坏它,但它们也会破坏您的 DRM 加密,因此在许多情况下,不值得花时间和精力。
-
不,不是。虽然如果不重复使用 otp 是牢不可破的,但您将不断重复使用它,您甚至不会考虑密钥交换。你实际上并没有给它任何真正的安全性,只是它的外表。而且,如果您认为有人在 NSA 之外破坏 aes,那您就疯了。只需使用现有的算法和库(以尽量减少担心旁道攻击的机会)
标签: android chromecast drm