首页 > 解决方案 > 客户选择的 PIN 的 HSM PIN 命令

问题描述

我正在尝试构建一个卡密码解决方案,让客户能够登录到门户网站并设置自己的卡密码,然后生成新密码的 PVV 值。

我尝试使用的命令列表是

JG\JH 命令需要 LMK 下的 PIN,这意味着我需要先对客户 PIN 执行 BA\BB 命令,然后才能继续。为此,HSM 必须处于授权状态。

有没有不同的方法来实现这一点?

标签: hsm

解决方案


好吧,正确的方法是以与在 ATM 终端上类似的方式进行操作。

1.创建一个清晰的PIN块

For ex.
PIN = 1234
PAN = 400000000000002

Block 1 [0+Pin Length+Filler to make it 16]: 0+   4+1234+FFFFFFFFFF = 41234FFFFFFFFFF
Block 2 [0000 + PAN(12, exclude first 3 and last check digit)]: 0000 +    000000000000 = 0000000000000000 

Clear PIN Block = XOR(Block 1 , Block 2)

2. 在 ZPK 下加密(应用 3DES)清除 PIN 块。

如果您使用的是 java,请尝试 javax.crypto.Cipher。

3.在命令“FW”中使用加密的PIN Block生成PVV

  • 命令代码 (FW)
  • PIN 加密密钥类型(ZPK 为 001)
  • PIN 加密密钥 (ZPK)
  • PIN 验证密钥
  • 密码块
  • PIN 块格式代码
  • PAN/帐户(12)
  • PVKI

推荐阅读