禁用我的Swing窗口的屏幕截图

mal*_*ere 2 java swing screenshot

我有一个Swing窗口,其中包含敏感信息,我想阻止用户截取屏幕截图,或者在截取屏幕截图时使用窗口隐藏.

我怎样才能做到这一点?

Pau*_*ane 9

我过去看到的一种聪明的方法通过一次仅显示图像的一部分来利用人类的持久视觉.

举一个简单的例子,假设您没有在文本框中呈现密码"p455w0rd",而是有一个特殊的文本框,可以非常快速地呈现三个不同的框架:

  1. p ? ? 5 ? ? r ?
  2. ? 4 ? ? w ? ? d
  3. ? ? 5 ? ? 0 ? ?

任何屏幕截图都只捕获数据的一部分(1/3),并且需要捕获器获取许多屏幕截图,选择包含所有信息的三个屏幕截图,然后将它们组合在图像编辑器中以恢复数据.

一个更好的解决方案是使用更多帧(尽管随着帧数增加闪烁会增加)或更精细的粒度(例如,像素而不是字符).

但请记住,这种解决方案只会使存储数据变得更加困难,而不是不可能.您很难阻止用户掏出笔或相机.除非这是针对试图保护客户数据的某些政府或呼叫中心应用程序,否则我会认真考虑不添加此类功能.


egb*_*kul 7

如果有人试图这样做,我会在VM中运行他们的程序,然后截取VM屏幕截图.

所以你无法阻止这样的事情......你为什么要这样做?