java - String.valueOf() 的实习

标签 java string security spring-security

在 Java 中处理密码时,我的理解是它们应该始终在 char[] 中处理,以允许 GC 并删除挂起的引用。

我的问题是,

char[] password = String.valueOf(authentication.getCredentials()).toCharArray();

authentication.getCredentials() 的值是否可以保留?

最佳答案

String.valueOf() 不实习字符串。在运行时实习字符串的唯一方法是使用 password.intern()无需使用 char[] 作为密码。 使用 char[] 允许您在使用后直接清除数组,从而缩短攻击者的时间范围转储内存并检索明文密码。

对于 GC 来说,String 本身并没有什么特别之处。实习会有点影响,但在常规使用中您不会遇到任何异常情况。

关于java - String.valueOf() 的实习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861548/

相关文章:

string - TryStrToFloat 转换错误的字符串

java - Java中汉字(UTF-8编码)的模式匹配

.net - MS09-035 漏洞及其对应用程序开发的影响

java - 使用 Py4j 将 Python 对象发送到 Java

java - 如何格式化电子邮件中的字符串以便 Outlook 打印换行符?

java - 程序似乎没有进入 while

在 HTTP 站点上使用基于 HTTPS 的服务的安全性

java - 如何在 Android 中禁用/启用 LinearLayout 上的所有子项

javascript - jQuery 文本 html 操作,在大量文本中查找字符的出现,然后更改其颜色

php - 如何使隐藏字段安全?