6

我需要下载一个大的视频文件并将其保存到硬盘上。然后我需要使用 XAML 媒体元素播放此视频文件。但该文件必须使用 AES 256 算法和加密密钥进行加密。任何时候都不得将未加密的数据写入硬盘驱动器。

例如,我可以有一个流,可以将未加密的数据转换为文件,反之亦然。

WinRT 有一个API ,允许我加密缓冲区。但是如果文件很大,这将不起作用。WinRT 有一个 API,允许加密流DataProtectionProvider。但是有一个神奇的 protectionDescriptor 参数,我没有找到有关如何指定算法和密钥的信息。

我能够做的是在 C# 中实现 IRandomAccessStream。它有效,但速度很慢。

请不要提供与 WinRT 平台无关的答案。任何其他帮助将不胜感激。

4

2 回答 2

0

此处的示例:http: //msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.security.cryptography.dataprotection.dataprotectionprovider.aspx为您提供有关 protectionDescriptor 的信息,简而言之,它识别将提供加密密钥的用户或组或计算机,在您的示例中:

String strDescriptor = "LOCAL=user";

然后:

DataProtectionProvider Provider = new DataProtectionProvider(strDescriptor);

这意味着密钥的提供者将是当前用户,从这个类的外观来看,它似乎是为了保护用户的信息,可能使用用户自己生成的证书和默认算法,它不能被覆盖,所以如果您正在寻找一种明确指定密钥和算法的方法,您可能会遇到困难CryptographicEngine

于 2012-11-12T19:36:13.100 回答
0

我能够实现使用 AES_CBC_PKCS7 算法即时加密或解密数据的 IRandomAccessStream。它支持顺序写入和随机访问读取。不幸的是,我无法分享源代码。

于 2013-01-22T19:53:31.707 回答