Проблемы со смарт-картой SLE4428

У меня есть USB-считыватель смарт-карт EZ100PU и новые (прозрачные) смарт-карты SLE4428. Я хотел бы написать на них числовую последовательность. Я пытаюсь сделать это с помощью простого java-приложения. Это мой код, основанный на других, доступных в Интернете:

public class Connection {

  public static void main(String[] args) throws Exception { 

    TerminalFactory factory = TerminalFactory.getDefault();

    CardTerminal terminal = terminals.get(1); 
    System.out.println("terminal: " + terminal.getName());
    Card card = terminal.connect("*");
    System.out.println("card: " + card);
    CardChannel channel = card.getBasicChannel(); 
    System.out.println("channel: " + channel.getChannelNumber());
    System.out.println("protocol: "+card.getProtocol());

    byte b[]=card.getATR().getBytes();
    for(int i=0;i<b.length;i++)
       System.out.print(b[i]);


//        byte[] bytes = {(byte)0xFF, (byte)0x00, (byte)0xFF, (byte)0x00};
//        ResponseAPDU r = channel.transmit(new CommandAPDU(bytes));

    card.disconnect(false);

  }
}

У меня проблема, потому что я всегда получаю «Неизвестный протокол 16», когда карта находится внутри считывателя. Наверно из-за этого не могу ничего записать на карту, при попытке всегда получаю ошибку. Можешь мне помочь?


person user1893184    schedule 11.12.2012    source источник


Ответы (2)


Вы пытаетесь использовать метод подключения к процессорным картам, совместимым со стандартом ISO 7816-3 (T=0, T=1 или T=CL), для подключения к низкой карте памяти. Вместо этого вам, вероятно, придется использовать специальную библиотеку для чтения карт, вы не можете просто использовать javax.smartcardio.

person Maarten Bodewes    schedule 11.12.2012
comment
Можете ли вы сказать мне, можно ли получить эти библиотеки и как их получить? Или, может быть, будет проще использовать разные смарт-карты - какие бы вы порекомендовали просто написать на них короткую последовательность чисел? - person user1893184; 12.12.2012
comment
Карты подходят для этой цели, но вам следует обратиться к поставщику за хорошей комбинацией считывателя и библиотеки. - person Maarten Bodewes; 12.12.2012
comment
К сожалению, я не знаю, кто является первоначальным поставщиком, потому что я купил ридер и карты в б/у у частного лица. Поэтому я думаю, что было бы проще просто купить разные смарт-карты. Если бы вы могли порекомендовать некоторые карты, которые я должен купить, чтобы легко писать на них (например, используя javax.smartcardio или другой другой простой метод), я был бы очень признателен. - person user1893184; 13.12.2012
comment
В общем, карты памяти, вероятно, лучше всего подходят для такого использования, поэтому я бы остановился на них и поискал нужную библиотеку у производителя ридера. Это должны быть довольно распространенные карты, поэтому, скорее всего, их должно быть несколько. Они также, вероятно, поставляются с заголовочными файлами C/C++, поэтому вам может понадобиться JNI для связи с Java. javax.smartcardio, вероятно, не очень хорошая идея для этого, это слишком высокий уровень. Если вы решите пойти по этому пути, вы можете подумать о плате DESFire, которая должна содержать (довольно простой) интерфейс APDU. - person Maarten Bodewes; 13.12.2012
comment
Здравствуйте, сэр, это снова я. Я решил использовать смарт-карты другого типа, потому что не смог найти способ записи или чтения с карт SLE4428. Я искал карты DESFire, о которых вы сказали, но, насколько я понял, они доступны только в бесконтактной версии. Поэтому мне понадобится контактная смарт-карта с, как вы сказали, простым APDU. Не могли бы вы назвать несколько карт, которые мне нужны? К сожалению, я не смог найти его. Как я вижу, вы знакомы со смарт-картами, и я был бы очень благодарен за помощь. - person user1893184; 23.12.2012
comment
APDU означает блок данных прикладного протокола. Для этого требуется наличие приложения, поэтому вы можете попытаться найти карту файловой системы, которая содержит простой процессор и не содержит дополнительных асимметричных сопроцессоров. К сожалению, моя сфера почти полностью относится к высококлассной части рынка бесконтактных смарт-карт. Мне нужно сначала изучить текущую ситуацию, прежде чем я смогу дать какую-либо рекомендацию, кроме той, которую я уже сделал: вам действительно не нужны APDU для чтения/записи порядковых номеров. Ищите набор для разработки считывателя и смарт-карт. - person Maarten Bodewes; 24.12.2012
comment
Я нашел библиотеки для своего картридера и использовал свои смарт-карты SLE4428. Спасибо за помощь. С наилучшими пожеланиями. - person user1893184; 26.12.2012
comment
Не могли бы вы поделиться, где вы нашли библиотеки? - person André van Schoubroeck; 04.11.2014

Ваша карта SLE 4428 имеет PIN-код по умолчанию = FFFF. Сначала вам нужно проверить PIN-код, ИСПОЛЬЗУЯ следующую КОМАНДУ: - FF 20 00 00 02 FFFF Затем вы можете записать данные на карту SLE 4428. Если данные «Меня зовут Кашьяп», то в шестнадцатеричном формате это 4D79206E616D65206973204B617368796170. Запись данных:- FF D0 00 20 12 4D79206E616D65206973204B617368796170. Вы также можете изменить PIN-код по умолчанию. Предположим, я хочу изменить PIN-код на 1234 из FFFF, а затем использовать следующую команду: - FF D0 03 FD 03 FF 1234.

Чтобы прочитать данные ниже команды:- FF B0 00 20 12

Спасибо, Кашьяп

person Kashyap Makwana    schedule 26.06.2015