3
方案:我们有一个要发布脱机(DVD-ROM)一个Silverlight 5 OOB应用。此应用程序可用作某些教育内容的媒体播放器。为了保护那些附带DVD ROM的视频文件,我决定用钥匙独特的视频文件进行加密,以每个用户,出货的内容和需要播放时,解密。媒体流和CryptoStream的
问题:它如何逐步解密媒体?我不想在一次解密整个文件的内存和性能问题。 MediaElement
支持类型的流的源,但是当我使用CryptoStream
解密视频文件,并将其传递给MediaElement.SetSource
方法,以下抛出异常:
{System.Windows.Media.DrmException: 3121 3121 An error has occurred.
at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
at MS.Internal.XcpImports.MediaElement_SetStreamSource(MediaElement element, Stream stream)
at System.Windows.Controls.MediaElement.SetSource(Stream stream)
at SilverlightApplication4.MainPage.button1_Click(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)}
我使用AES alorithm为cryptographics操作AesManaged
类。
在此先感谢。
如果你打算上存储的AES密钥?如果它在磁盘上与视频一起,你没有真正保护自己。 –