我犯了将密码存储为 Java 程序中的字符串的错误。我想防止这个字符串密码出现在堆转储/内存转储中。理想情况下,我应该使用 char[] 并在使用后将其填充为零(如本文所推荐 - https://nvisium.com/resources/blog/2016/03/31/secure-password-strings.html) .
我阅读了一些 SO 帖子并了解字符串是不可变的,它们不能被覆盖。我的问题是 - 有没有办法用零替换已经创建的字符串的内容?
注意:我现在无法将实现更改为使用 char[],因为我从返回字符串的模块/库中获取此字符串。