[UWP]如果在UWP中加密存储文件(媒体),如何解密? [英] [UWP]How decrypt storage file (media) in chunks if it was encrypted in UWP ?

查看:132
本文介绍了[UWP]如果在UWP中加密存储文件(媒体),如何解密?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用下面的代码来加密存储文件(媒体文件)并在我通过之后解密文件解密缓冲区到媒体源。

I am using below code to encrypt storage file(media file) and decrypt file after that i pass decrypted buffer to media source.

我的问题是它可以一次性加密和解密我的文件。由于我只能播放媒体

My problem is it can encrypt and decrypt my file on single one shot. due to that i only able to play media

如果大小不超过1 gb。但需要播放超过2gb

if size is not more that 1 gb. But need to play more than 2gb

请建议如何破解我的解密逻辑,以便它可以通过更改我的算法。

Please suggest how to break my decrypt logic so that it can in chunk with changing my algorithm.

  public static IBuffer EncryptAes_CBC(string pass,string salt, IBuffer buffMsg)

        {

            byte [] saltBytes = Encoding.ASCII.GetBytes(salt);

            IBuffer pwBuffer = CryptographicBuffer.ConvertStringToBinary(pass,BinaryStringEncoding.Utf8);

            IBuffer saltBuffer = saltBytes.AsBuffer();

            SymmetricKeyAlgorithmProvider symProvider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7); // PBKDF2WithHmacSHA1

            CryptographicKey symmKey = symProvider.CreateSymmetricKey(pwBuffer);

            IBuffer resultBuffer = CryptographicEngine.Encrypt(symmKey,buffMsg,saltBuffer);

            return resultBuffer;

        }


        public static IBuffer Decrypt(string pass,string salt,IBuffer buffMsg)

        {

           试试
            {

                byte [] saltBytes = Encoding.ASCII.GetBytes(salt);

                 IBuffer pwBuffer = CryptographicBuffer.ConvertStringToBinary(pass,BinaryStringEncoding.Utf8);

                 IBuffer saltBuffer = saltBytes.AsBuffer();

                SymmetricKeyAlgorithmProvider symProvider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7); // AES_CBC_PKCS7

             &NBSP ;  CryptographicKey symmKey = symProvider.CreateSymmetricKey(pwBuffer);

                IBuffer resultBuffer = CryptographicEngine.Decrypt(symmKey,buffMsg,saltBuffer);

                 return resultBuffer;

            }
            catch(例外情况)

            {

                LogHelper.ExceptionLogging(例如,"EncryptionDecryptionHelper.Decrypt");
$
                返回null;

            }
        }

 public static IBuffer EncryptAes_CBC(string pass, string salt, IBuffer buffMsg)
        {
            byte[] saltBytes = Encoding.ASCII.GetBytes(salt);
            IBuffer pwBuffer = CryptographicBuffer.ConvertStringToBinary(pass, BinaryStringEncoding.Utf8);
            IBuffer saltBuffer = saltBytes.AsBuffer();
            SymmetricKeyAlgorithmProvider symProvider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);//PBKDF2WithHmacSHA1
            CryptographicKey symmKey = symProvider.CreateSymmetricKey(pwBuffer);
            IBuffer resultBuffer = CryptographicEngine.Encrypt(symmKey, buffMsg, saltBuffer);
            return resultBuffer;
        }

        public static IBuffer Decrypt(string pass, string salt, IBuffer buffMsg)
        {
            try
            {
                byte[] saltBytes = Encoding.ASCII.GetBytes(salt);
                IBuffer pwBuffer = CryptographicBuffer.ConvertStringToBinary(pass, BinaryStringEncoding.Utf8);
                IBuffer saltBuffer = saltBytes.AsBuffer();
                SymmetricKeyAlgorithmProvider symProvider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);//AES_CBC_PKCS7
                CryptographicKey symmKey = symProvider.CreateSymmetricKey(pwBuffer);
                IBuffer resultBuffer = CryptographicEngine.Decrypt(symmKey, buffMsg, saltBuffer);
                return resultBuffer;
            }
            catch (Exception ex)
            {
                LogHelper.ExceptionLogging(ex, "EncryptionDecryptionHelper.Decrypt");
                return null;
            }
        }

Arun Singh Rawat |流动性| UWP | WPF Skype:arun.rawat017 |电子邮件:arun.rawat017@hotmail.com | arun.rawat017@gmail.com

Arun Singh Rawat | Mobility | UWP| WPF Skype: arun.rawat017 | Email:arun.rawat017@hotmail.com| arun.rawat017@gmail.com

推荐答案

我在UWP文件中搜索了这个。在UWP应用程序中似乎无法做到这一点。目前UWP中没有这样的API可以实现这一点。

I searched about this in UWP documents. It seems this is not possible to do that in UWP apps. Currently there is not such APIs in UWP could implement this.

祝你好运,

Roy


这篇关于[UWP]如果在UWP中加密存储文件(媒体),如何解密?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆