针对客户选择的PIN的HSM PIN命令



我正在尝试构建一个卡pin解决方案,通过该解决方案,客户可以登录到门户网站并设置自己的卡pin,然后生成新pin的PVV值。

我尝试使用的命令列表是

  • JG\JH(翻译PIN(
  • DG\DH(生成PVV(

JG\JH命令需要LMK下的PIN,这意味着我需要首先对客户PIN执行BA\BB命令,然后才能继续。为此,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块生成PVV

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

最新更新