所以,这是个坏消息。我很惊讶没有人提到它。使用现代垃圾收集器,甚至整个char []概念都被破坏了。不管您使用String还是char
[],数据最终都会存在谁知道多长时间的内存中。这是为什么?因为现代jvm使用世代垃圾收集器,简而言之,该垃圾收集器会在 各处复制对象
。因此,即使您使用char
[],它使用的实际内存也可能会复制到堆中的各个位置,从而使密码的副本无处不在(并且没有执行者gc会将旧内存归零)。因此,当您将最后拥有的实例清零时,您只是将内存中的最新版本清零。
长话短说,没有防弹方法来处理它。您几乎必须信任该人。



