taoism 2 edep 圈存辅助计算 ui script

来源:互联网 发布:剑三丐哥捏脸数据 编辑:程序博客网 时间:2024/06/11 20:02

 

taoism 2版辅助计算工具中,用来辅助计算电子存折/钱包圈存指令的界面脚本

 

脚本内容,见附录B

 

使用方法

 

1) 将脚本内容存储为一个txt文本文件。

 

 

2) 打开snooper taoism 2 0.0.1.5或更高版软件。

 

 

3) 点击“常用计算工具”按钮,弹出菜单,选择user 01 – user 04中的一个。

 

4) 在新弹出的界面上点击右键加载脚本,选择步骤1中所存储的脚本文件。

 

5) 添加适当的参数,点击按钮进行计算。

 

附录A

-------------------

 

附录B

脚本如下

 

 

static说明="利用用户输入的交易类型、交易密钥、密钥id\r\n交易金融等参数来校验初始化交易指令以及交易指令"position= 0%width= 100%height= 2

crlf

 

staticstatic圈存密钥="圈存密钥(16字节)"position= 0%width= 100%height= 1

crlf

edit圈存密钥filename="圈存密钥"position= 0%width= 100%height= 1

crlf

 

staticstatic密钥索引="密钥索引(1字节)"position= 0%width= 39%height= 1

staticstatic交易金额="交易金额(4字节)"position= 40%width= 59%height= 1

crlf

 

edit密钥索引filename="密钥索引"position= 0%width= 39%height= 1

edit交易金额filename="交易金额"position= 40%width= 59%height= 1

crlf

 

staticstaticTAC密钥="TAC 密钥(16字节)"position= 0%width= 100%height= 1

crlf

editTAC密钥filename="TAC密钥"position= 0%width= 100%height= 1

crlf

 

staticstatic终端机编号="终端机编号(6字节)"position= 0%width= 49%height= 1

staticstatic交易时间="交易时间(7字节)"position= 50%width= 49%height= 1

crlf

edit终端机编号filename="终端机编号"position= 0%width= 49%height= 1

edit交易时间filename="交易时间"position= 50%width= 49%height= 1

crlf

 

 

staticstaticaaa="━━━━━━━━━━━━━━━━━━━━━━━━"position= 0%width= 100%height= 1

crlf

 

   button生成ED初始化圈存指令="生成 ED(存折)初始化圈存指令"position= 0%width= 49%height= 1

   button生成EP初始化圈存指令="生成 EP(钱包)初始化圈存指令"position= 50%width= 49%height= 1

   crlf

 

   staticstatic输出结果="初始化指令生成结果"position= 0%width= 100%height= 1

   crlf

   edit初始化指令生成结果filename="初始化指令生成结果"position= 0%width= 100%height= 1

   crlf

 

   function 生成ED初始化圈存指令

        初始化指令生成结果= 80 50 00 01($密钥索引  $交易金额     $终端机编号 )

   endfunction

 

   function生成EP初始化圈存指令

       初始化指令生成结果= 80 50 00 02($密钥索引  $交易金额     $终端机编号 )

   endfunction

 

staticstaticaaa="━━━━━━━━━━━━━━━━━━━━━━━━"position= 0%width= 100%height= 1

crlf

 

   staticstatic输出结果="外部输入的初始化指令返回数据"position= 0%width= 100%height= 1

   crlf

   edit外部输入的初始化指令返回数据filename="外部输入的初始化指令返回数据"position= 0%width= 100%height= 1

   crlf

 

   button由返回结果反填参数="由返回结果反填参数"position= 50%width= 49%height= 1

   crlf

 

   staticstatic余额="余额"position= 0%width= 24%height= 1

   staticstatic交易序号="交易序号"position= 25%width= 24%height= 1

   staticstatic伪随机数="伪随机数"position= 50%width= 24%height= 1

   staticstatic圈存mac1="圈存mac1"position= 75%width= 24%height= 1

   crlf

   edit余额filename="余额"position= 0%width= 24%height= 1

   edit交易序号filename="交易序号"position= 25%width= 24%height= 1

   edit伪随机数filename="伪随机数"position= 50%width= 24%height= 1

   edit圈存mac1filename="圈存mac1"position= 75%width= 24%height= 1

   crlf

 

   function由返回结果反填参数

       余额     =  mid($外部输入的初始化指令返回数据,int( 0),int( 4))       //余额

       交易序号 =  mid($外部输入的初始化指令返回数据,int( 4),int( 2))       //序号

       伪随机数 =  mid($外部输入的初始化指令返回数据,int( 8),int( 4))       // 伪随机数

        圈存mac1 =  mid($外部输入的初始化指令返回数据,int( 12),int( 4))       // 圈存mac1

   endfunction

 

   // 临时变量

   edittmpfilename="tmp"position= 0%width= 24%height= 0

   edit圈存过程密钥filename="圈存过程密钥"position= 0%width= 24%height= 0

 

   staticstatic外部计算圈存mac1="外部计算圈存mac1"position= 50%width= 49%height= 1

   crlf

   button计算ED圈存mac1="计算ED圈存mac1"position= 0%width= 29%height= 1

   button计算EP圈存mac1="计算EP圈存mac1"position= 30%width= 39%height= 1

   edit外部计算圈存mac1filename="外部计算圈存mac1"position= 75%width= 24%height= 1

   crlf

 

   function 计算ED圈存mac1

       // 先校验mac是否正确

        tmp=$伪随机数    $交易序号                               8000

        圈存过程密钥=3des_encode_ecb($tmp,$圈存密钥)      // tmp是过程密钥

       //mac1的原始数据组成为

       //               余额 +       交易金额 + 交易类型标识 + 终端机编号

        tmp=fixed80($余额    $交易金额      01        $终端机编号)

        外部计算圈存mac1=des_des_mac( 0000000000000000,$tmp,$圈存过程密钥)

   endfunction

 

   function 计算EP圈存mac1

       // 先校验mac是否正确

        tmp=$伪随机数    $交易序号                               8000

        圈存过程密钥=3des_encode_ecb($tmp,$圈存密钥)      // tmp是过程密钥

       //mac1的原始数据组成为

       //               余额 +       交易金额 + 交易类型标识 + 终端机编号

        tmp=fixed80($余额    $交易金额      02         $终端机编号)

        外部计算圈存mac1=des_des_mac( 0000000000000000,$tmp,$圈存过程密钥)

   endfunction

 

staticstaticaaa="━━━━━━━━━━━━━━━━━━━━━━━━"position= 0%width= 100%height= 1

crlf

   button计算ED圈存指令="计算ED圈存指令"position= 0%width= 29%height= 1

   button计算EP圈存指令="计算EP圈存指令"position= 30%width= 39%height= 1

   crlf

   edit圈存指令filename="圈存指令"position= 0%width= 100%height= 1

   crlf

 

   function计算ED圈存指令

       //圈存指令临时数据

        tmp=fixed80($交易金额      01         $终端机编号  $交易时间)

       //用过程密钥对mac2 原始数据进行mac计算,结果是mac2

        tmp=des_des_mac( 0000000000000000,$tmp,$圈存过程密钥)

        圈存指令= 80 52 00 00($交易时间$tmp)

   endfunction

 

   function 计算EP圈存指令

       // 圈存指令临时数据

        tmp=fixed80($交易金额      02         $终端机编号  $交易时间)

       //用过程密钥对mac2 原始数据进行mac计算,结果是mac2

        tmp=des_des_mac( 0000000000000000,$tmp,$圈存过程密钥)

        圈存指令= 80 52 00 00($交易时间$tmp)

   endfunction

 

staticstaticaaa="━━━━━━━━━━━━━━━━━━━━━━━━"position= 0%width= 100%height= 1

crlf

 

   staticstatic输出结果="外部输入的交易指令返回数据"position= 0%width= 49%height= 1

   edit交易指令TACfilename="交易指令TAC"position= 50%width= 49%height= 1

   crlf

 

   button计算ED交易指令TAC="计算ED交易指令TAC"position= 0%width= 49%height= 1

   button计算EP交易指令TAC="计算EP交易指令TAC"position= 50%width= 49%height= 1

   crlf

 

   editTAC临时数据filename="TAC临时数据"position= 0%width= 24%height= 0

   editTAC临时密钥filename="TAC临时密钥"position= 0%width= 24%height= 0

 

   function 计算ED交易指令TAC

        TAC临时数据=fixed80(add($余额,$交易金额)          $交易序号         $交易金额      01     $终端机编号  $交易时间)

        TAC临时密钥=xor(left($TAC密钥, 08),right($TAC密钥, 08))

        交易指令TAC=des_des_mac( 0000000000000000,$TAC临时数据,$TAC临时密钥)

   endfunction

 

   function 计算EP交易指令TAC

        TAC临时数据=fixed80(add($余额,$交易金额)          $交易序号         $交易金额      02     $终端机编号  $交易时间)

        TAC临时密钥=xor(left($TAC密钥, 08),right($TAC密钥, 08))

        交易指令TAC=des_des_mac( 0000000000000000,$TAC临时数据,$TAC临时密钥)

   endfunction

 

 

 

 

原创粉丝点击