JVM是否可以在关闭时覆盖其所有内存

ftl*_*ftl 4 java encryption jvm

我正在研究一些与内存中的秘密数据一起使用的应用程序.有没有办法确保在JVM终止时覆盖所有内存?在JVM终止后,任何秘密数据都不应留在内存中.

Ste*_*n C 6

简短回答:当前一代JVM无法保证.

但是,如果您的应用程序需要这样的东西,那么除非您在没有交换设备的情况下运行,否则很难看到如何在典型的现代操作系统上以任何编程语言实现它.即便如此,您可能还需要依赖操作系统在程序退出时将物理内存归零.(除非存在错误,否则操作系统应该在将内存提供给另一个进程之前将其清零,但我不认为在发生这种情况时会将其指定.)

但这没有实际意义.操作系统应该防止未经授权的人员/进程在程序执行期间或退出后查看其他进程的内存.如果您的系统遭到黑客入侵以获得"root"权限或同等权限,则无法保证其中任何一项.所以当程序退出时,已经太晚了!