2011-12-05 42 views
0

我想提出的是下载到的文件目录中的视频,并与扮演的MPMoviePlayerController他们的应用程序。为了帮助阻止视频从设备中移除并播放,我将混淆文件名称。假设我想在真实文件扩展名为“mov”时播放标有“movie.blah”的电影。我如何得到这个游戏?我是否必须暂时将其重命名为“movie.mov”,然后在完成播放后将其更改回去?谢谢你的帮助。如何播放带有隐藏文件名的文件?

+0

路不好走。对于安全来说,模糊处理就相当于使用saran包裹衣服 - 一切仍然可见。使用处理程序脚本来决定是否可以提供文件,并仅通过此脚本为您的电影提供访问。 –

回答

1

正如马克B所示,你不希望使用模糊的安全。这是一种可行的方法。开销很小(28字节)。

  1. 定义您自己的可以嵌入标准.mov文件的包装文件格式。使用固定长度的头部和指示嵌入的电影文件长度的参数可以非常简单。

  2. 在您的自定义文件格式,使用AES和设备硬件的唯一密钥(CPU序列号也许)加密的数据流。

  3. 在播放过程中只需将文件进行解码,以按需在内存中的缓冲液中。您应该能够支持部分解密和即时播放。

这样,用户将不得不复制文件并确定您用于加密密钥的内容,以便在其他设备上播放该文件。

布局示例:

------------------ 
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

+0

感谢您的帮助,Will。我要研究加密。 –

0

如何存储,当你与iTunes同步没有得到备份的目录中的视频?我认为图书馆/缓存符合资格。

+0

当需要磁盘空间时,Apple是否有任何有关清除该目录的策略?似乎是一个“缓存”将驱逐一个很好的候选人,当你需要的磁盘空间... –

+0

我记得,如果设备运行的磁盘空间,iOS版删除缓存文件。当磁盘空间不足时,可以再次下载的大视频文件似乎可能成为删除的候选对象。 –