Liw*_*hao 5 java garbage-collection
这是一个内存数据安全性问题。
Java垃圾收集是否可以安全清除垃圾数据?
显然,在大块数据被垃圾回收之后,我再也无法检索它了,但是黑客仍然可以通过内存转储来检索数据吗?
正如其他用户在这里已经提到的那样,JVM不会在垃圾回收后安全地清理内存,因为这会严重影响性能。这就是为什么许多程序(尤其是安全性库)使用可变结构而不是不可变的(char数组而不是字符串等)并在不再需要它们时清理数据本身的原因。
不幸的是,即使这样的方法也不总是可行。让我们看一下这种情况:
我只能想到一种解决此问题的方法:
另一种解决方案是使用堆外数据,您可以根据需要手动对其进行处理,但这不是纯Java。
这取决于 JVM 实现以及其中可能的选项,但我认为它不会清除数据。垃圾收集只需要跟踪哪些区域可用。将所有这些数据设置为 0 或其他值会导致大量不必要的写入。正是由于这个原因,您经常会看到 API 使用字符数组而不是字符串作为密码。
| 归档时间: |
|
| 查看次数: |
767 次 |
| 最近记录: |