[UWP]如果在UWP中加密存储文件(媒体),如何解密? [英] [UWP]How decrypt storage file (media) in chunks if it was encrypted in 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屋!