C# 如何解密内存中的加密图像&;应用

C# 如何解密内存中的加密图像&;应用,c#,wpf,encryption,C#,Wpf,Encryption,我正在使用文件夹中的资源(图像、视频等)开发一个WPF应用程序,我正在通过给定的加密机制对所有资源进行加密 public class EncryptFile_DecryptFile { #region Encrypt Images & save it public string EncryptFile(Image img,string ImagePath_to_Save) { byte[] ImageBytes;

我正在使用文件夹中的资源(图像、视频等)开发一个WPF应用程序,我正在通过给定的加密机制对所有资源进行加密

public class EncryptFile_DecryptFile   
{   
   #region Encrypt Images & save it  
   public string EncryptFile(Image img,string ImagePath_to_Save)  
    {          
       byte[] ImageBytes;
        ImageBytes = imageToByteArray(img);   

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }
            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
     return ImagePath_to_Save;
    }
   #endregion
   #region Convert Image in to Byte
   public byte[] imageToByteArray(System.Drawing.Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        return ms.ToArray();
    }
    #endregion


   #region Decrypt Image & save it
   public string DecryptFile(string ImagePath_to_Save)
    {
             byte[] ImageBytes;

            ImageBytes = File.ReadAllBytes(ImagePath_to_Save);

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }

            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
             return ImagePath_to_Save;

    }
   #endregion
}
现在,当我通过应用下面给出的解密技术来使用资源时,这里我需要将文件保存在本地驱动器的某个位置并在应用程序中使用,我不想要它,因为当文件被解密时,用户可以看到文件并对其进行更改

public class EncryptFile_DecryptFile   
{   
   #region Encrypt Images & save it  
   public string EncryptFile(Image img,string ImagePath_to_Save)  
    {          
       byte[] ImageBytes;
        ImageBytes = imageToByteArray(img);   

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }
            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
     return ImagePath_to_Save;
    }
   #endregion
   #region Convert Image in to Byte
   public byte[] imageToByteArray(System.Drawing.Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        return ms.ToArray();
    }
    #endregion


   #region Decrypt Image & save it
   public string DecryptFile(string ImagePath_to_Save)
    {
             byte[] ImageBytes;

            ImageBytes = File.ReadAllBytes(ImagePath_to_Save);

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }

            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
             return ImagePath_to_Save;

    }
   #endregion
}
是否可以在内存中解密文件图像,并在应用程序中使用,而无需将文件保存在内存中

public class EncryptFile_DecryptFile   
{   
   #region Encrypt Images & save it  
   public string EncryptFile(Image img,string ImagePath_to_Save)  
    {          
       byte[] ImageBytes;
        ImageBytes = imageToByteArray(img);   

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }
            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
     return ImagePath_to_Save;
    }
   #endregion
   #region Convert Image in to Byte
   public byte[] imageToByteArray(System.Drawing.Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        return ms.ToArray();
    }
    #endregion


   #region Decrypt Image & save it
   public string DecryptFile(string ImagePath_to_Save)
    {
             byte[] ImageBytes;

            ImageBytes = File.ReadAllBytes(ImagePath_to_Save);

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }

            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
             return ImagePath_to_Save;

    }
   #endregion
}
公共类加密文件\u解密文件
{   
#区域加密图像并保存
公共字符串加密文件(图像img,字符串ImagePath_to_Save)
{          
字节[]图像字节;
ImageBytes=imageToByteArray(img);
for(int i=0;i
否则,请建议我使用应用程序中加密资源的其他方法。

您可以使用而不是文件流。这将使您的图像保留在内存中

public class EncryptFile_DecryptFile   
{   
   #region Encrypt Images & save it  
   public string EncryptFile(Image img,string ImagePath_to_Save)  
    {          
       byte[] ImageBytes;
        ImageBytes = imageToByteArray(img);   

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }
            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
     return ImagePath_to_Save;
    }
   #endregion
   #region Convert Image in to Byte
   public byte[] imageToByteArray(System.Drawing.Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        return ms.ToArray();
    }
    #endregion


   #region Decrypt Image & save it
   public string DecryptFile(string ImagePath_to_Save)
    {
             byte[] ImageBytes;

            ImageBytes = File.ReadAllBytes(ImagePath_to_Save);

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }

            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
             return ImagePath_to_Save;

    }
   #endregion
}
下面是如何实现它的

public class EncryptFile_DecryptFile   
{   
   #region Encrypt Images & save it  
   public string EncryptFile(Image img,string ImagePath_to_Save)  
    {          
       byte[] ImageBytes;
        ImageBytes = imageToByteArray(img);   

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }
            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
     return ImagePath_to_Save;
    }
   #endregion
   #region Convert Image in to Byte
   public byte[] imageToByteArray(System.Drawing.Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        return ms.ToArray();
    }
    #endregion


   #region Decrypt Image & save it
   public string DecryptFile(string ImagePath_to_Save)
    {
             byte[] ImageBytes;

            ImageBytes = File.ReadAllBytes(ImagePath_to_Save);

            for (int i = 0; i < ImageBytes.Length; i++)
            {
                ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
            }

            File.WriteAllBytes(ImagePath_to_Save, ImageBytes);
             return ImagePath_to_Save;

    }
   #endregion
}
public Stream DecryptFile(string encryptedImageFile){
  byte[] ImageBytes;

  ImageBytes = File.ReadAllBytes(encryptedImageFile);

  for (int i = 0; i < ImageBytes.Length; i++){
    ImageBytes[i] = (byte)(ImageBytes[i] ^ 5);
  }

  return new MemoryStream(ImageBytes);
}
公共流解密文件(字符串加密图像文件){
字节[]图像字节;
ImageBytes=File.ReadAllBytes(encryptedImageFile);
for(int i=0;i