java - 如何从 JVM 内存中清除明确的敏感数据?

标签 java string security architecture garbage-collection

有人对如何彻底清除内存中的敏感数据有建议吗?

此数据是卡信用数据,因此,我需要保证此数据将被删除。

我一直在阅读有关 char[] 的内容,在我看来,我永远不应该使用文字字符串,因为字符串将一直存在,直到垃圾收集器想要获取此字符串为止。

但是... 我需要使用这个解密的数据请求Rest API,所以当我将对象设置为xml格式时,不可避免地需要使用String。

请帮帮我,伙计们!

最佳答案

老实说,这是一种浪费的练习:/有持久页表、故障转储、堆转储、CPU 缓存、线程缓存、rowhammer 攻击、卡住攻击、JVM 的字符串实现本身,以及许多服务器(如 Tomcat)实现字符串池,还有很多我不知道的事情。

尽管如此,如果您有决心,有时您只是想检查“安全”[剧院]审核的愚蠢方框,您可以将其存储为 char[]byte[] 并执行 Arrays.fill(array, 'x')

关于java - 如何从 JVM 内存中清除明确的敏感数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48937009/

相关文章:

c++ - 如何避免构造新字符串?

azure - 如何配置对单个 Blob 存储容器的访问

security - 在公共(public)网站上显示 TCM ID 是否存在安全问题?

java - 无效申请。删除?在诺基亚手机上

Java代码查找数据库所有表的唯一键

Lua 中的字符串操作 : Make the odd char uppercase

security - 不要在历史记录、任何标题或元标记中保存 URL?

java - 了解应用程序如何从服务器提取数据,以便可以从 web 应用程序或其他应用程序完成相同的请求

java - 使用 CAR 将自定义中介部署到 WSO2 ESB

ruby - 生成字符串的所有可能的连续单词组合