在 Java 中,当有需要安全处理的对象时,有哪些选项?
考虑到:
a) The when:您需要对对象何时被处理的一些保证。调用 System.gc() 是唯一/更好的选择吗?
b) how : GC 是不够的,您需要确保对象实例正在使用的内存被正确擦除。可以首先通过反射获取对内部对象表示的引用(在字符串中获取 char[])并覆盖数据。但是,此方法需要对每种类型的对象进行实现。
有没有更好的方法来确保密码和私钥对象不会留在 RAM 上?
更新:密码就是一个例子。这个问题的重点是对象安全销毁的一般方法。想想 BigInteger、PGPPrivateKey、RSAWhatever 等。