ISO 8583 Rev.93 - 连接到通道

Kam*_*yar 5 c# iso8583 core-banking

我对整个ISO8583概念都很陌生,并被指派连接到银行频道.

我使用了John Oxley的优秀OpenIso8583.Net来制作Iso8583标准消息并通过tcp发送.

他们为我提供了一些我无法清楚理解的基本信息.
不幸的是,我没有任何资源可用于获取更多信息,并希望从社区获得一些指南.

银行给了我一张测试卡号(PAN)(16位),一个PIN码(4位数),一个插座号和一个MAC键.

这是我到目前为止所拥有的:

  • 在msg [Iso8583Rev93.Bit._002_PAN]进入PAN.
  • msg [Iso8583Rev93.Bit._052_PIN_DATA]:他们为我提供了一种基于PAN和PIN码生成16字节PIN码的算法.我已设法根据该算法生成正确的PIN块.

我不知道的事情:

  • 他们表示使用DES算法加密PIN BLOCK.我应该在哪里放置加密的PIN块?它更多的是16个字节,不能在msg [Iso8583Rev93.Bit._052_PIN_DATA]中吗?

  • 我该如何使用他们为我提供的MAC密钥?他们表示使用DES-CBC算法生成MAC.他们提供的MAC密钥长度为16字节(16位).我应该在msg [Iso8583Rev93.Bit._128_MAC]字段中输入什么?我应该使用此MAC密钥加密整个邮件吗?我似乎迷失了解MAC键的用途.

  • 插座号码的用途是什么?它是否类似于端口号(如果你打电话给它的软件插槽),允许用户连接到频道?

谢谢.

A.R*_*had 3

请找到您的疑问的答案:

我不知道的事情:

  1. 他们表示 PIN BLOCK 使用 DES 算法进行加密。我应该将加密的 PIN 块放在哪里?它超过 16 个字节,不能在 msg[Iso8583Rev93.Bit._052_PIN_DATA] 中,对吧?
    加密的 PIN 块应该转到位 052,您不应该通过明确的 PIN 块,如果您的加密 PIN 数据的结果超过 16 位数字,那么您的算法有问题;DES 和 3DES 应具有循环行为,并且结果应限制为 16 位数字。

  2. 我应该如何使用他们为我提供的 MAC 密钥?他们表示 MAC 是使用 DES-CBC 算法生成的。他们提供的 MAC 密钥长 16 个字节(16 位数字)。我应该在 msg[Iso8583Rev93.Bit._128_MAC] 字段中输入什么?我应该用这个 MAC 密钥加密整个消息吗?我似乎不明白 MAC 密钥的用途。
    您应该在银行提供的规范中列出要进行 MAC 处理的选定字段,通常是:

    • 潘 (DE2)
    • 金额 (DE4)
    • 轨迹数据(DE35 或 DE45)
    • PIN 数据 (DE52)
    • 往返账户(DE102 和 DE 103)

  3. 插座号有什么用?是不是类似于端口号(如果你称之为软件插槽)之类的东西,可以让用户连接到频道?
    通常网点号码是一些与收单银行相关的数据,它会与字段42相关

我要强调一点,ISO8583并不是一个严格的框架,决定使用该框架作为集成手段的双方应决定每个字段中传递的数据的具体细节