У меня есть универсальный считыватель кредитных карт, который определяется как USB-клавиатура. Я проверил это, просто используя текстовое представление для захвата текста.
Мне было интересно, что было бы лучше всего реализовать, поэтому вам не нужно активное текстовое поле (например, захватывать общие события клавиатуры через буферы потока ввода консоли, такие как то, что я использую в настольной версии кард-ридера):
Console console = System.console();
String inputData = new String (console.readPassword());