有人对如何彻底清除内存中的敏感数据有建议吗?
此数据是卡信用数据,因此,我需要保证此数据将被删除。
我一直在阅读有关 char[] 的内容,在我看来,我永远不应该使用文字字符串,因为字符串将一直存在,直到垃圾收集器想要获取此字符串为止。
但是... 我需要使用这个解密的数据请求Rest API,所以当我将对象设置为xml格式时,不可避免地需要使用String。
请帮帮我,伙计们!
最佳答案
老实说,这是一种浪费的练习:/有持久页表、故障转储、堆转储、CPU 缓存、线程缓存、rowhammer 攻击、卡住攻击、JVM 的字符串实现本身,以及许多服务器(如 Tomcat)实现字符串池,还有很多我不知道的事情。
尽管如此,如果您有决心,有时您只是想检查“安全”[剧院]审核的愚蠢方框,您可以将其存储为 char[]
或 byte[]
并执行 Arrays.fill(array, 'x')
关于java - 如何从 JVM 内存中清除明确的敏感数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48937009/