ユーザー名とパスワードが GUI で作成され、MySQL テーブルに保存される Java GUI の登録およびログイン ページを作成しています。関連するコードは -
passL = new JPasswordField();
userNameT = new JTextField();
//Set up everything else
submitB = new JButton("click to submit");
frame.add(submitB);
submitB.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = GetConnection.getConnectionInstance();
PreparedStatement statement1 = con
.prepareStatement("INSERT INTO users (username, password) VALUES ("
+ Integer.parseInt(userNameT.getText())
+ ",SHA1('" + passT.getPassword() + "'))");
statement1.executeUpdate();
} //Catches exceptions etc
userNameT は数字で、パスワード (passT) は何でもかまいません (まだ制約を書いていません)。
私の質問は、Eclipse が getPassword に関する警告を表示していることです。「char[] を明示的に文字列に変換する必要があります」。これを行う方法にセキュリティ上の問題はありますか?
また、これをコピーした直後に passT を null または空白に明示的に変更する必要がありますか、それとも Java が自動的に変更しますか。
すべてのアドバイスを歓迎します! ありがとう