0%

卫士通SJL05加密机模拟器

模拟卫士通加密机—SJL05,具体工程:https://github.com/kengdingxiaoman/hmsmock

用于POS交易时本地调试使用,线上环境使用的是加密机,但一般都对IP会有限制,所以本地调试时无法使用加密机

hmsmock编译成jar包后,可以本地启动,启动后会模拟加密机,只需把加密机的地址和端口改为hmsmock

工程结构

  • constants:定义常量和枚举
  • exception:定义异常和错误原因
  • sample:一些例子
  • server: server类,监听请求,分发至具体处理类
  • service:具体命令的实际处理类
  • util:各种工具类,也包含各种算法的实现
  • 类 ServerStart:启动类

支持的命令

支持变种机密的基本命令,也就是 d1 开头的命令

命令 解释
41 解密区域密钥加密的key
d1 02 将一个密钥加密的key转换为另一个密钥加密的结果
d1 07 生成密钥
d1 12 加密明文
d1 14 解密密文
d1 22 生成 pinblock
d1 24 转换 pinblock
d1 26 解密 pinblock
d1 32 结算 mac 值

支持的 mac 算法

  • ANSI9.9
  • ANSI9.19
  • ECB

工程启动

将工程编译后会生成 jar, 如果是在linux环境,那使用命令运行jar:

nohup java -jar XXXXX.jar &

日志会记录到nohup文件中。

同时需要在同一目录下放置 lmk 文件,内容类似: 5986bfbd461beb417a1b4e4f4c077e22

用来生成最终的 LMK

大体流程说明

hmsmock