为 JPasswordField 补充合适的安全层

complementing suitable security layer for JPasswordField

在我的软件中,我提供了 FTP 登录工具。我使用 JPasswordField 作为登录面板的密码部分。但是,建议将 JPasswordField 数组的每个字符设置为 0 以确保其安全。但是我不确定它是否适用于我的情况。这是我获取密码的方法:

public String getPassword(){
        char[] password = passwordField.getPassword();
        String passStr = "";
        for(int i=0; i< password.length; i++){
            passStr += password[i];
            password[i] = 0;
        }
        return passStr;
}

从JPasswordField获取密码的方式正确吗?如您所见,我在获取每个字符的值后将其设置为 0,但是变量 passStr 是如何保存整个密码的,所以我有点不确定保持它安全的登录在这里是否正确。

所以你能检查一下代码并让我知道对于这种情况它是否是正确的实现吗?

看起来这已经在 here and here

之前讨论过了

希望这些帮助。

我们的想法是根本没有 String。只需使用字符,并在完成后将它们归零。您应该能够将 char[] 一直传递到 FTP 套接字。