Member 12769715 Ответов: 2

Как сохранить изображение отпечатка пальца на смарт-карте в java


how to store my finger print image in smart card using java



Что я уже пробовал:

TerminalFactory фабрика = TerminalFactory.getDefault();
Список терминалов = фабрика.клеммы().список();
System.out.println("Reader:" + терминалы);
// Используйте первый кард-ридер:
CardTerminal terminal = terminals.get(0);
// Установить соединение с картой:
Карта card = terminal.connect("T=0");
Системы.из.код println("карта:" + карта);
CardChannel канал = КАРТА.getBasicChannel();


Итератор писателей = ImageIO.getImageWritersByFormatName("БМП");
Инструкция писатель = (инструкция)писателей.далее();
File f=новый файл("требуется\\75.БМП");


MessageDigest MessageDigest ;
пробовать {
messageDigest = MessageDigest.getInstance("MD5");
FileInputStream input = новый FileInputStream(f);
byte[] buffer = новый байт[8192];
int длина;
пока( (длина = вход.читать(буфера)) != -1 ) {
messageDigest.update(буфер, 0, длина);
}
byte[] raw = messageDigest.digest();

//распечатка в базе 64
BASE64Encoder encoder = новый BASE64Encoder();
Строка base64 = encoder.encode(raw);


// Системы.из.печати(в формате base64.метод toString());


Строковые данные=формат base64.метод toString();
байт[] смещение=сведения.метод getbytes();
int length1=data.length();

// System.out.print(смещение);
пробовать {
CommandAPDU commandAPDU = новый CommandAPDU(0x00, 0xB2, 1, 1, offset, 0, length1);
byte[] commandBytes = commandAPDU.getBytes();
// System.out.print(commandBytes);
ResponseAPDU responseAPDU = null;
if (channel != null) {

responseAPDU = channel.transmit(commandAPDU);

байт[] результат=responseAPDU.метод getbytes();
String s = новая строка(commandBytes);

System.out.println("текст расшифрован :" + s.substring(5));



// System.out.print(responseAPDU);
}


}
поймать (CardException е) {
throw new IOException(e);
}



// и отобразить результаты
//JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),"ваш файл отпечатка пальца" + новая строка(base64.toString()));


// вычисление из данного файла, запускающего его внутри
// при расчете формулы дайджеста
} catch (NoSuchAlgorithmException ex) {
Регистратор.getLogger(JavaApplication1.класс.метод getname()).журнал(уровень.Тяжелый, нулевой, бывший);
}


карта.разъединение(ложь);

Richard MacCutchan

У вас есть вопрос?

2 Ответов

Рейтинг:
2

OriginalGriff

Обычно вы не храните изображение отпечатка пальца на смарт - карте-вы храните ссылку на отпечаток пальца (и другие биометрические данные) на вашем защищенном сервере. Таким образом, смарт-карта сообщает вашей системе, какой отпечаток пальца ожидать, и вы сравниваете его с данными, которые вы фактически получаете. Если вы храните фактические данные на смарт-карте, она обходит систему безопасности, предоставляя данные для проверки из незащищенного источника, поскольку злоумышленники могут заменить дату смарт-карты печатью плохого парня, и вы не можете сказать!


Рейтинг:
2

Member 13996751

Вы действительно надеетесь, что архитектура системы будет работать так, как она требует для чтения обратно с карты. Сколько времени вы ожидаете для чтения этих длинных карточных данных??


Richard Deeming

Как это должно быть "решением" уже ответившего вопроса?

Если вы хотите задать вопрос или добавить комментарий, то нажмите кнопку "есть вопрос или комментарий?" кнопка под вопросом. НЕ опубликуйте свой комментарий как "решение".