小编Mic*_*and的帖子

通过OmniKey的非接触式卡,如何获得"UID"?

我正在尝试使用非接触式OmniKey 5321读卡器读取智能卡信息.

编辑:添加了赏金.

我正在.NET 3.5程序中编写C#3,所以这是一个Windows应用程序.

该卡上印有一些信息,我会假设,卡片数据中存在某些信息(下面有卡片和读卡器的照片.)

该卡上印有以下信息:

1* 00447   21091328-32

使用OmniKey读卡器附带的诊断应用程序时,我会收到以下信息:

Smart Card Name: iCLASS 16KS UID:EE 74 0E 00 FB FF 12 E0
ATR            : 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0A 00 1A 00 00 00 00 78
Protocol       : ISO 15693 (Part 2)

现在,我已经考虑了一些转换:

  • 447十进制= 1BF十六进制(未找到)
  • 447八进制= 295十进制(未找到BCD类型编码)
  • 447八进制= 127十六进制(未找到)
  • 找不到447十六进制

这是我的问题:

  • "UID"号码是否是我可以依赖的唯一号码?我并不真正关心447号码,我需要知道的是,我从这张卡片中挑选的信息将在以后唯一识别它,以便我可以将其链接到卡片的所有者
  • 我如何阅读UID号码?在Windows中使用WINSCARD.DLL我可以看到每个字节都得到"ATR"数据,但UID显然不存在于该部分中.

这是照片,如果它给你任何信息.

OmniKey读卡器带卡

uniqueidentifier smartcard smartcard-reader winscard iso-15693

8
推荐指数
3
解决办法
2万
查看次数

在Android设备上检测NFC

好吧,我的目的是检测Android设备是否支持NFC,如果不支持我将使用其他技术.我已将最低API级别设置为8,因为我希望我的应用程序即使在没有NFC的这些设备上也可以运行.

有没有像isNFCSupported()这样的方法?有任何想法吗?

谢谢yosoh.

android nfc

8
推荐指数
1
解决办法
3868
查看次数

使用Nexus 5在Android(4.4/KitKat及更高版本)上进行主机卡仿真

我试图根据本文档使用我的Nexus 5模拟NFC标签,但我的服务永远不会被调用.我应该关闭Android光束吗?

我想模拟一个包含网址的简单标记.

读者是Nexus 7(2012),我已经发现这个过程就像在Nexus 7上使用Android光束简单扫描NFC标签一样.

另外我对辅助过滤器名称有点困惑.有他们的清单吗?

我确定我不明白.谢谢

android apdu nfc android-beam hce

8
推荐指数
1
解决办法
6393
查看次数

Desfire EV1通讯实例

Stackoverflow上有很多关于Desfire EV1卡的问题.但是,如果您搜索一些示例数据,那么您将在Ridrix博客中找到几个字节的唯一位置.但这还不完整.

在为Desfire卡开发代码时,很多人都在那里写了他们的问题.但大多数情况下,当他们解决问题时,他们懒得发布解决方案.因此,您会发现许多问题,但很少有数据示例的答案.

即使你有Desfire EV1文档(我没有它,我研究过easypay代码),你还需要更多.文档只是理论.但是,您的卡返回身份验证错误或完整性错误或意外CMAC的原因是什么?

  • 会话密钥好吗?
  • CBC是否正常工作?
  • CMAC是否正确计算?
  • CRC32是否正确?
  • 在函数调用之前/之后,会话密钥的IV是否正确?

没有例子,你完全迷失了.

arduino mifare contactless-smartcard

8
推荐指数
1
解决办法
5423
查看次数

Android NFC IsoDep读取文件内容

我正在尝试从ISO/IEC 14443 A型卡中读取一些信息.

在使用Android应用程序NFC TagInfo分析卡片后,我发现应用程序(AID:15845F)具有我需要的特定文件(文件ID:01).

我已经设法连接到卡并选择应用程序.

String action = getIntent().getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action))
{
    Tag tagFromIntent = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);  
    Log.i(TAG, Arrays.toString(tagFromIntent.getTechList()));

    IsoDep isoDep = IsoDep.get(tagFromIntent);
    try
    {
        isoDep.connect();

        byte[] SELECT = { 
            (byte) 0x00, // CLA = 00 (first interindustry command set)
            (byte) 0xA4, // INS = A4 (SELECT)
            (byte) 0x04, // P1  = 04 (select file by DF name)
            (byte) 0x0C, // P2  = 0C (first or only file; no FCI)
            (byte) 0x06, // Lc  = 6 …
Run Code Online (Sandbox Code Playgroud)

android apdu nfc mifare contactless-smartcard

7
推荐指数
1
解决办法
8590
查看次数

通过NFC将URL从Android发送到Windows Phone可获得Play商店链接

我正在尝试使用NFC将Android应用中的URL发送到WP8手机.

当发送到Android设备时,URL会正确发送.然而,当发送到WP8时,IE加载到Play商店的链接而不是我想发送的链接(例如" http://www.stackoverflow.com ").

Play商店链接为:" https://play.google.com/store/apps/details?id=com.example.conductrnfc&feature=beam ".其中" com.example.conductrnfc "是项目中的包名称.

我用于生成NFC消息的代码如下.我在这里做错了什么打破了与WP8的兼容性?

NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);
nfc.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() {
    @Override
    public NdefMessage createNdefMessage(NfcEvent event)
    {
        NdefRecord uriRecord = NdefRecord.createUri(urlString);
        return new NdefMessage(new NdefRecord[] { uriRecord });
    }
}, 
this);
Run Code Online (Sandbox Code Playgroud)

android nfc android-beam windows-phone-8 nfc-p2p

7
推荐指数
1
解决办法
780
查看次数

KitKat:如何将APDU路由到SIM卡

我想将从NFC读卡器获得的APDU路由到SIM卡.根据HCE文档,我认为只需通过创建一个具有相应路由条目的OffHostApduService(我做过)就可以实现.

可悲的是,SIM似乎没有得到任何APDU.SELECT-SIM由SIM-Reader直接连接到我的工作站时使用的命令返回6a82(找不到文件).

在LogCat中,我发现了两个有趣的信息:

每当我拍摄一个应该被路由到SIM的选择命令时,我会得到以下条目:

01-14 10:44:18.501: D/BrcmNfcJni(1009): RoutingManager::stackCallback: event=0x17
01-14 10:44:18.501: D/BrcmNfcJni(1009): RoutingManager::stackCallback: NFA_CE_DATA_EVT; h=0x302; data len=12
01-14 10:44:18.501: D/HostEmulationManager(1009): notifyHostEmulationData
Run Code Online (Sandbox Code Playgroud)

我认为这是路由设置不正确的线索,因为我认为当到SIM的路由处于活动状态时,Android操作系统不应该知道,并且向SIM发送选择或其他命令.

每次我从阅读器的NFC字段中删除手机时,都会收到以下错误:

01-14 10:46:48.791: E/BrcmNfcNfa(1009): UICC[0x0] is not activated
Run Code Online (Sandbox Code Playgroud)

我试图跟踪此错误的原因,并找到了external/libnfc-nci/src/nfa/ce/nfa_ce_act.chere似乎属于Broadcom NFC驱动程序的文件.

我认为错误是应用程序无法为APDU设置正确的路由,因为驱动程序认为SIM未被激活.在我发送命令的那一刻,SIM卡被解锁(PIN输入),但我怀疑这与它有什么关系,因为我不需要在读卡器中使用它之前解锁SIM卡.

我使用Nexus 5进行测试.是否有人有经验和/或工作示例,其中APDU可以路由到SIM而不是CPU?

android apdu nfc android-4.4-kitkat hce

7
推荐指数
1
解决办法
4226
查看次数

使用SCL010获取Mifare Ultralight的UID

我想获得Mifare Ultralight NFC标签的UID.在Java中我有这个代码:

TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
System.out.println("Terminals: " + terminals);

CardTerminal terminal = terminals.get(0);

Card card = terminal.connect("*");
System.out.println("card: " + card);
CardChannel channel = card.getBasicChannel();

ResponseAPDU answer = channel.transmit(new CommandAPDU(0xFF, 0xCA, 0x00, 0x00, 0x00));
byte[] uid = answer.getBytes();
Run Code Online (Sandbox Code Playgroud)

问题是我收到两个字节而不是UID.有什么问题?APDU是否正确?

java apdu nfc smartcard-reader mifare

7
推荐指数
2
解决办法
7400
查看次数

仅使用maven创建Android存档库(AAR)

我正在开发一个我希望分发给其他开发人员的库项目.

在互联网上有很多关于这个主题的讨论,人们建议创建一个分发版本库项目,其中只包含我的库项目的jar和其他资源.这听起来不错.

然后,我突然发现有人建议创建Android Archive Library(AAR).但他们都使用名为Gradle的工具

我正在将Eclipse与Maven一起用于我的Android库项目.我的问题是,是否有可能为我的android库项目生成AAR实现 而不使用Gradle但仅使用Maven?如果是这样,怎么样?

eclipse android maven android-library aar

7
推荐指数
1
解决办法
4428
查看次数

通过Android USB主机与智能卡读卡器通信

我正在尝试向智能卡发送命令.我使用Gemalto IDBridge CT30(PC TWIN阅读器)和通过USB连接到Android设备的IDBridge K30.

我尝试通过USB发送SELECT APDU命令:

boolean claim = openedConnection.claimInterface(usbInterface, true);
byte[] data = new byte[]{
        (byte) 0x00, (byte) 0xA4, (byte) 0x04, (byte) 0x0C,
        (byte) 0x07, (byte) 0xA0, (byte) 0x00, (byte) 0x00,
        (byte) 0x01, (byte) 0x18, (byte) 0x45, (byte) 0x4E};
Run Code Online (Sandbox Code Playgroud)

之后我收到了答案:

final int dataTransferred = this.openedConnection.bulkTransfer(endPointOut, data, data.length, TIMEOUT_MS);
if(!(dataTransferred == 0 || dataTransferred == data.length)) {
    throw new Exception("Error durring sending command [" + dataTransferred + " ; " + data.length + "]"); //$NON-NLS-1$ …
Run Code Online (Sandbox Code Playgroud)

usb android smartcard pcsc smartcard-reader

7
推荐指数
2
解决办法
2842
查看次数