String hashContrasenia = conexion_db.hashContrasenia(pass);if (!conexion.validarCliente(names, hashContrasenia)) { JOptionPane.showMessageDialog(this, "Usuario o contraseña incorrectos", "Error", JOptionPane.ERROR_MESSAGE); return; } JOptionPane.showMessageDialog(this, "Credenciales válidas. Por favor acerca tu tarjeta", "Autenticación de dos factores", JOptionPane.INFORMATION_MESSAGE); String uidLeido = RFIDSocketClient.leerTarjeta(); int idUsuario = conexion.obtenerIdUsuario(names); int uidRegistrado = conexion.obtenerIdPorRfid(uidLeido); if (uidLeido.equals(uidRegistrado)) { JOptionPane.showMessageDialog(this, "Autenticación exitosa\nBienvenido " + names, "Éxito", JOptionPane.INFORMATION_MESSAGE); this.dispose(); new controller().setVisible(true); } else { JOptionPane.showMessageDialog(this, "La tarjeta no coincide con tus datos", "Error", JOptionPane.ERROR_MESSAGE); } Que le hace falta para que lea la tarjeta, estoy usando python en una raspberry pi con RFID RC522
Para leer la tarjeta con el RFID RC522 en Java, necesitarás utilizar la biblioteca `MifareClassic` de la librería `com.hid` para interactuar con el módulo RFID. A continuación, te proporciono un ejemplo de cómo podrías modificar tu código para leer la tarjeta: ```java import com.hid.HidAPIException; import com.hid.HidDevice; import com.hid.HidDeviceList; import com.hid.HidField; import com.hid.HidFieldId; import com.hid.HidFieldDataType; import com.hid.HidFieldData; import com.hid.HidFieldDataFormat; import com.hid.HidFieldDataFormatType; import com.hid.HidFieldDataFormatSubtype; import com.hid.HidFieldDataFormatSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeType; import com.hid.HidFieldDataFormatSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtypeSubtype; import com.hid.HidFieldDataFormatSubtype