从SQL数据库中检索字节但得到错误的值

时间:2016-11-01 18:31:19

标签: java sql jdbc

我已经在我的应用程序中添加了一个哈希和salt函数,并且工作正常,但是一旦我将byte []数组存储到我的数据库然后尝试检索它,它会得到错误的值,每次检索到的值是不同的。

这是将字节数组中的数据存储到数据库中。

        String query = "INSERT INTO `teach`.`users`(`id`, `forename`, `surname`, `email`, `username`, `salt`, `password`, `type`) values(?, ?, ?, ?, ?, ?, ?, ?)";
    PreparedStatement registerStatement = null;
    try {
        registerStatement = ServerProgram.getDatabase().getConnection().prepareStatement(query);
    } catch (SQLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        registerStatement.setInt(1, 0);
        registerStatement.setString(2, forename);
        registerStatement.setString(3, surname);
        registerStatement.setString(4, email);
        registerStatement.setString(5, username);
        registerStatement.setBytes(6, salt);
        registerStatement.setBytes(7, hashedPassword);
        registerStatement.setString(8, "student");
        registerStatement.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }

这是检索它的代码(loginExists是resultSet)

byte[] salt = loginExists.getBytes("salt");
byte[] expectedHash = loginExists.getBytes("password");

0 个答案:

没有答案