我在JPasswordField
输入密码时遇到密码问题。
kasirlozinka = new JPasswordField("lozinka");
final String lozinka = new String(kasirlozinka.getPassword().toString());
当我在mysql workbench中写一个像"lozinka"
这样的密码时,我会得到类似"[C@3f528528"
的内容,所以我的问题是,如何解决这个问题并获取用户输入的字符串,以及什么类型的密码是这个,怎么解密呢?
答案 0 :(得分:1)
对JPasswordField.getPassword()
的调用会返回{[A,0,10][C,5,15][D,15,30]}
{[B,30,40]}
(您不想在其上调用char[]
,因为数组不会覆盖toString()
)。您可以使用String.valueOf(char[])
将其设为Object.toString
。像,
String
答案 1 :(得分:0)
"[C@3f528528"
是String
的{{1}}代表。 char[]
返回getPassword()
的数组。只需删除char
:
toString
答案 2 :(得分:0)
JPasswordField.getPassword()
返回char[]
。在数组上调用toString()
将产生您所看到的内容。
要将密码转换为字符串,请删除toString()
:
final String lozinka = new String(kasirlozinka.getPassword());
这将调用new String(char[])构造函数。
答案 3 :(得分:0)
应删除toString()。 kasirlozinka.getPassword()返回可以传递给String构造函数的char []:
kasirlozinka = new JPasswordField("lozinka");
//final String lozinka = new String(kasirlozinka.getPassword().toString());
final String lozinka = new String(kasirlozinka.getPassword());