2010-05-12 9 views
6

Ich versuche zu lernen, wie Java aufgrund einer Projektanalyse auf Smartcards zugreift. Ich frage mich, ob es irgendeine Art von virtueller Chipkarte gibt, mit der ich einige Tests mit Java machen könnte?Zugriff auf Smartcard mit Java

Übrigens habe ich über Java-Karte gelesen, und es sieht aus wie es verwendet wird, um Java in Karten, nicht auf Smartcard-Datenzugriff mit Java, nicht wahr?

Antwort

9

Look at this tutorial + example. Und related. (Ich habe diese Beispiele verwendet und sie funktionieren gut).

Ein wichtiger Punkt ist, dass Sie nichts aus der Smartcard bekommen können. Sie können nur Dinge an den Prozessor senden. Wenn Sie also ein Objekt PrivateKey bekommen, haben Sie nicht wirklich den privaten Schlüssel - das ist nur ein Proxy für den SmartCard-Prozessor, und Methoden aufrufen, ruft den Prozessor.

Ich weiß jedoch nicht, virtuelle Smartcards.

Eine API von Interesse ist javax.smartcardio

+0

Ich "kann nichts aus der Chipkarte bekommen" bedeutet nicht, dass ich seinen öffentlichen Schlüssel nicht bekommen kann, ich hoffe, –

+1

Ok, ich fand weiter über: http://www.java2s.com/Open -Source/Java-Dokument/6.0-JDK-Core/smartcardio/javax.smartcardio.htm –

+0

Sie können den öffentlichen Schlüssel erhalten, ja – Bozho

2

Es ist ein Java-Card-Emulator mit dem Java Card Development Kit gebündelt. Wenn Sie irgendwann eine echte Karte verwenden möchten, sollten Sie Version 2.2.1 oder 2.2.2 verwenden, da ich für eine Weile keine Karten der Version 3 erwarten würde. Sie benötigen noch ein Applet, um die Karte anzulegen. Eine Java-Karte macht nichts. Erst wenn Sie ein Karten-Applet laden, wird es eine nützliche Funktion ausführen.

Ein Problem mit dem Emulator in der JCDK ist, dass Sie javax.smartcardio nicht verwenden können, um auf die Karte zuzugreifen, und dies ist die bevorzugte Methode zur Kommunikation mit einer Karte im Moment. Die andere beliebte Alternative, OpenCard Framework, wurde seit einiger Zeit nicht mehr aktiv gepflegt.

0

Wenn Sie Javacard nachzueifern versuchen jCardSim zu verwenden: http://jcardsim.org. Es unterstützt auch den Zugriff über javax.smartcardio API und Apdu-Skripte.

1

Javacard verwenden Java nur eine Teilmenge der Java-Entwicklung Sie sollten besser keine Java-Entwicklungsumgebung verwenden Weil es einige Spezialeffekte gibt, die nicht unterstützt werden Sie können das Plugin oder eine dedizierte Entwicklungs-IDE herunterladen, die Sie hier herunterladen können www.javacos.com Entwicklungsumgebung.