C# 是否可以在Windows照片查看器中打开图像而不显示图像路径

C# 是否可以在Windows照片查看器中打开图像而不显示图像路径,c#,image,winforms,C#,Image,Winforms,我正在加密和解密图像,因为它们包含敏感信息。 我在这里的挣扎是我不能做标准的过程由于加密的原因 到目前为止,我的解决方案是制作一个Windows窗体,在PictureBox中打开它,因为它不需要路径,我可以这样做: newImage = enc.Decrypt(); pictureBox1.Image =newImage; 但要想模拟Windows照片查看器一直是一场斗争 我的问题是,我能用imagenewImage=enc.Decrypt()打开一个图像吗在Windows Photo Vie

我正在加密和解密图像,因为它们包含敏感信息。 我在这里的挣扎是我不能做标准的
过程由于加密的原因

到目前为止,我的解决方案是制作一个Windows窗体,在
PictureBox
中打开它,因为它不需要路径,我可以这样做:

newImage = enc.Decrypt();
pictureBox1.Image =newImage;
但要想模拟Windows照片查看器一直是一场斗争


我的问题是,我能用image
newImage=enc.Decrypt()打开一个图像吗
在Windows Photo Viewer(或任何其他类似软件)中没有路径,或者我注定要尝试复制Photo Viewer程序吗?

首先让我说,如果图像信息高度敏感,则无法向用户显示并确保其100%的安全性。即使使用内存流,也可以进行内存转储并访问敏感信息。这不是小事,而是可行的

现在这就不成问题了,Windows进程不经过特权调试API函数(如
ReadProcessMemory
)就无法直接访问彼此的内存。这是保持Windows稳定和安全的原因,但却使您试图实现的目标无法实现。你必须使用一个文件

其他人建议将文件保存在Windows临时文件夹中。这并不比像您这样将其保存在任何其他文件夹中更安全。更安全的方法是创建一个RAM磁盘,将文件保存在那里,显示它们,然后移除RAM磁盘

RAM磁盘是硬盘的内存模拟,您可以使用驱动器号以相同的方式访问它。创建并移除RAM磁盘不是一项简单的任务,它只提供了多一点安全性,但您是唯一可以决定是否值得的人。用户仍然可以查看和访问RAM磁盘上的文件,但只有在删除之前。因此,它提供的唯一增加的安全性是减少用户可以直接访问文件的窗口


像现在这样在自己的应用程序中打开图像仍然是最安全的方法,因为提取这些文件的唯一方法是进行内存转储,这对于图像来说非常困难(文本更容易)。如果不想自己编写全部代码,可以搜索某个库。

将解密后的图像保存到临时文件中,然后将该文件交给
Process.Start(saveImagePath)
如果你的意思是你的敏感信息是图像本身,那就毫无意义了,因为用户可以在查看图像时只拍摄图像的打印屏幕。我知道这毫无意义,但我不是打电话的人。我试图将其保存到临时文件并给出其路径,但似乎没有效果。