Java 在mysql中的二进制字段中插入密码,并在登录系统时进行检查
我正在开发一个软件,我有一个框架来拯救用户。 我有密码字段,可以从“保存新用户”框中获取密码。我选择了二进制数据类型来保存密码。在我保存了一条记录并从workbench中查看之后,密码字段出现了“BLOB”。我试过登录frmae。但它不起作用。我没有使用任何加密方法 我的问题是贝娄和代码。我也想知道什么是保存密码的最佳方式Java 在mysql中的二进制字段中插入密码,并在登录系统时进行检查,java,mysql,netbeans,mysql-workbench,Java,Mysql,Netbeans,Mysql Workbench,我正在开发一个软件,我有一个框架来拯救用户。 我有密码字段,可以从“保存新用户”框中获取密码。我选择了二进制数据类型来保存密码。在我保存了一条记录并从workbench中查看之后,密码字段出现了“BLOB”。我试过登录frmae。但它不起作用。我没有使用任何加密方法 我的问题是贝娄和代码。我也想知道什么是保存密码的最佳方式 //get password from password field in save user frame String password = txtUse
//get password from password field in save user frame
String password = txtUserPassword.getPassword().toString();
/////////////////////////////////QUERY TO SAVE NEW USER////////////////////////////////////////////////////
//query to save the new user
"INSERT INTO user(username,fname,lname,password,contact,type,isDeleted) VALUES( '"+userName+"','"+fname+"','"+lname+"','"+password+"','"+contact+"','"+type+"','false' )"
///////////////////LOG IN FORM CODE/////////////////////////////////////////////////////////////////////
//in Login form ,get the user name and password and check with database value
String username = txtUsername.getText();
String password = new String(txtPassword.getPassword());
//take the values to result set
ResultSet rst = DB_Access.getData("SELECT username,password FROM user WHERE BINARY username='"+username+"' AND BINARY password = '"+password+"' ");
// check user existing or not in the if condition
if(rst.next())
{
Guesrname = txtUsername.getText(); // this user name to pass the user name to next form
this.dispose();
Seller sellFrame = new Seller(Guesrname ); // next appearing form
sellFrame.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(this, "Invalid user name or password");
}
我看到一个问题。这行不正确:
String password = txtUserPassword.getPassword().toString(); // returns something like"[C@12345"
稍后,您可以使用字符串构造函数而不是toString
,正确地执行此操作:
String password = new String(txtPassword.getPassword());
JPassword.getPassword()返回一个char[]
而不是字符串。奇怪的是,char数组的toString方法不返回包含字符数组文本的字符串
修改输入密码的代码,使其工作方式与使用密码登录的代码相同。这会让你离得更近。谢谢你的回答。我想知道存储密码的最佳方法。我想我得到了答案,但我不知道是否正确。我将在程序中加密密码并将其保存到mysql数据库。我使用varchar(255)字段保存加密的密码。告诉我我是否正确。