我正在创建一个应用程序,将视频下载到文档目录并使用MPMoviePlayerController播放它们。为了防止视频被从设备中取出并播放,我将模糊文件名。假设当真正的文件扩展名为“mov”时,我想播放标记为“movie.blah”的电影。我该怎么玩这个?我是否必须暂时将其重命名为“movie.mov”,然后在完成播放后将其更改回来?谢谢你的帮助。
答案 0 :(得分:1)
正如Marc B所说,你不想使用混淆来保证安全。这是一种可行的方法。开销很小(28字节)。
定义您自己的可以嵌入标准.mov文件的包装器文件格式。使用固定长度的标题和指示嵌入的电影文件长度的参数可以非常简单。
在自定义文件格式中,使用AES和设备硬件中的唯一密钥(可能是CPU序列号)加密数据流。
在播放过程中,只需根据需要将文件解码为内存缓冲区。您应该能够支持部分解密和立即播放。
这样,用户必须同时复制文件并确定您用于加密密钥的内容,才能在另一台设备上播放该文件。
布局示例:
------------------
MOV Wrapper Header
4 bytes: File Type Header ID Magic: "MWHF"
16 bytes: Encryption Algorithm: "AES256"
8 bytes: 64-bit unsigned file length
------------------
Embedded and encrypted mov file
保护文件的关键是加密密钥的选择。您不想使用静态密钥,也不想使用可在设备外部访问的密钥。
这个问题可能有助于找到合适的uuid:iPhone / iPad user profile tracking
答案 1 :(得分:0)
如何将视频存储在与iTunes同步时未备份的目录中?我认为图书馆/高速缓存符合条件。