标签: winscard

MiFare - UID与MiFare卡序列号的区别

我需要在WinSCard中读取MiFare卡的序列号.我可以从MiFare卡上读取7B UID.

令人困惑的是,我不知道UID和MiFare卡的序列号是否相同?!!

我搜索了这个问题,但只能取得部分成功.我在stackoverflow上发现了一个问题,但它没有帮助.

我找到了一份 NXP在线文件,其中说UID和序列号不同.(第3页,第5行)

有一个OmniKey应用程序读取卡的序列号,它也只返回UID.

恩智浦文档说UID <>序列号和其他标准OmniKey应用程序返回UID作为序列号.

我已经开始在这个问题上脱掉头发了.如果有人能提供帮助,我将不胜感激.

rfid mifare winscard

10
推荐指数
2
解决办法
6万
查看次数

通过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万
查看次数

使用.Net技术开发智能卡读卡器

有谁知道如何监控智能卡的存在并读取卡的UID值?

是的我在网上尝试过很多例子

适用于.NET的智能卡框架

PCSC锐

监控智能卡读卡器

但不知道该怎么做.我可以检测卡的存在并且可以单独获取UID,但不知道如何在我的应用程序中组合它们:(.

帮我

c# smartcard winscard

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

使用WinSCard获取PCSC阅读器序列号

如果读卡器中没有卡,我在获取PCSC阅读器序列号时遇到问题.我正在使用winscard.dll和c ++.

以下代码仅适用于读卡器中存在卡的情况.否则,不会检索SCardHandle.我还没有找到任何其他方法来获得SCardHandle.

SCARDHANDLE hCardHandle;
SCARDCONTEXT    hSC;
WCHAR   pCardReaderName[256];
LONG lReturn;

lReturn = SCardEstablishContext(SCARD_SCOPE_USER, 0, 0, &hSC);

if (lReturn != SCARD_S_SUCCESS)
{
    Console::WriteLine("SCardEstablishContext() failed\n");
    return;
}

my_select_reader(hSC, pCardReaderName); // just shows reader names in console and requires you to pick one

// connect to smart card
DWORD   dwAP;

lReturn = SCardConnect( hSC,
                (LPCWSTR)pCardReaderName,
                SCARD_SHARE_SHARED,
                SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1 | SCARD_PROTOCOL_RAW,
                &hCardHandle,
                &dwAP );

if ( SCARD_S_SUCCESS != lReturn )
{
    Console::WriteLine("Failed SCardConnect\n");
    exit(1);  // Or other appropriate action.
}

// get …
Run Code Online (Sandbox Code Playgroud)

windows serial-number pcsc winscard

6
推荐指数
1
解决办法
7919
查看次数

如何根据 USB 端口位置连接到智能卡读卡器?

我目前正在对多个智能卡读卡器识别进行一些研究和测试,以确定哪个读卡器连接到哪个 USB 端口。

假设我将读卡器 A 插入 USB 端口 1。通过调用 SCardListReaders 函数,我检索以下友好名称:

  • ACS ACR1281 1S 双读卡器 PICC 0

然后我将另一个读卡器(读卡器 B)插入 USB 端口 2。现在我有 2 个读卡器连接到同一台 PC。调用 SCardListReaders 会给我:

  • ACS ACR1281 1S 双读卡器 PICC 0
  • ACS ACR1281 1S 双读卡器 PICC 1

我知道这些名称是如何生成的(PCSC 智能卡读卡器“友好名称”是如何构造的?)并且我知道以不同顺序插入读卡器(先插入读卡器 B,然后插入读卡器 A)将更改 SCARD_ATTR_DEVICE_UNIT影响友好名称。

基于上述场景,如何确保 PC 始终自动连接到 USB 端口 1 中的 PICC 读卡器,无论其友好名称如何?

任何帮助都感激不尽。谢谢。

c# smartcard-reader winscard

5
推荐指数
0
解决办法
2500
查看次数

如何读/写同步智能卡(如存储卡)

我有一张仅支持同步接口的IC存储卡(如SLE5532、SLE5542...等)

我想知道如何编写一个应用程序来读取内存内容、验证 PSC (PIN) 并写入内存。

这种类型的卡不能像微处理器卡那样接受普通的 APDU。在数据表中,它指定以二进制形式发送的命令(所有命令均为 3 字节长度)

我发现一个设计用于与 SCM Reader(基于 MCSCM.dll)配合使用的应用程序,但它无法与我的 OmniKey 读卡器配合使用。

我想知道是否可以构建一个直接调用winsCard API 函数的应用程序,而无需直接使用Reader 的DLL。如果是这样,应该调用哪些正确的函数?

如果不可能,我如何找到 OmniKey 的 API?任何人都可以向我发送适用于 OmniKey 3121 读卡器和同步卡的样本吗?

提前致谢

apdu smartcard pcsc winscard

5
推荐指数
1
解决办法
4413
查看次数

建立资源管理器上下文以使用智能卡读取器

我正在c++使用Visual Studio 2017 开发应用程序。

我正在使用Windows库winscard。我从一个简单的项目开始,在该项目中,我将调用函数SCardEstablishContext作为读取智能卡所需的第一步。

我正在使用的代码段如下:

LONG resContext = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &hSC);
if (resContext != SCARD_S_SUCCESS) {
    printf("Failed\n");
    printf("Error %X\n", resContext);
}
Run Code Online (Sandbox Code Playgroud)

我所知道的是,此功能使用Windows服务(称为“智能卡”)来获取执行数据库操作(读/写卡)的范围。

不幸的是,这个简单的应用程序SCARD_S_SUCCESS仅在Windows 7环境中有效(即返回代码)。在我测试过的所有Windows 10系统中,返回代码始终0x8010001DLSCARD_E_NO_SERVICE断言的定义相关联:

智能卡资源管理器未运行。

在Windows 7系统上,该程序无需管理员权限即可工作;在Windows 10系统上,我也尝试使用管理员权限,但错误相同。

在我测试的每个Windows 10系统中,我在测试程序之前都手动启动了“智能卡”服务,并在测试过程中检查了该程序是否仍在运行。

在Windows 7和Windows 10系统中,我都没有连接智能卡读卡器。

winscard.lib我使用的文件带有Microsoft Windows SDK版本10.0.17763.0

要使其与Windows 10兼容,还有其他事情要做?

c++ smartcard winscard windows-10

5
推荐指数
1
解决办法
307
查看次数

带有winscard.dll 的.NET 应用程序中的ERROR_INVALID_HANDLE

我正在创建一个 .NET Windows 服务来与智能卡读卡器通信。主要组件是一个名为winscard.dll 的Windows DLL,我在.NET 代码中将其与DLLImport 属性一起使用。在 Windows XP 32 位上一切正常,但是当我在Windows 7 x64上运行它时,我在调用SCardTransmit时收到0x6 ERROR_INVALID_HANDLE结果。应用程序(作为命令行应用程序的服务)可以连接到读卡器,但无法从卡中读取任何内容。

任何想法?

.net windows 64-bit winscard

4
推荐指数
1
解决办法
4031
查看次数

在C#中从ATR确定设施代码和卡号

我有以下读卡器HID Omnikey 5325.我有一张名为HIS Proximity的非接触式卡.

此卡上写的号码是1 33593 42101044091-3.

通过读卡,我得到以下ATR十六进制:3B050002F10673

使用以下应用程序,我设法看到以下信息.

PACS探针 你好Prox

我需要提取设施代码代码以识别卡.

我设法找到以下代码,但我遗漏了几件:

/// <summary>
    /// Extract a data item from the Wiegand raw data. The data item usually is something like a card 
    /// number or facility code.
    /// </summary>
    /// <param name="format"></param>
    /// <param name="identifier"></param>
    /// <returns></returns>
    public int getData(int format, int identifier)
    {
        int byteOffset = 0;
        if (m_rawWiegandData == null)
        {
            throw new Exception("no raw Wiegand data available");
        }
        //SELF-TEST
        byte[] testData_H10301 = …
Run Code Online (Sandbox Code Playgroud)

.net c# bytearray smartcard winscard

3
推荐指数
1
解决办法
4159
查看次数

使用WinSCard库获取mifare卡序列号

我正在开发一个需要读取mifare卡序列号的应用程序,我正在使用的语言是C#.

我是mifare读者编程的新手,所以我很抱歉提出愚蠢的问题.首先,我想知道Mifare UID和Mifare序列号之间是否有不同之处.

我已经设法在WinSCard库的帮助下获得了UID,但是我无法弄清楚如何获得应该是10位数字的卡序列号.

如果你能指出我正确的方向,我很感激.

在此先感谢您的帮助.问候

.net c# rfid mifare winscard

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