键盘命令总结.docx
《键盘命令总结.docx》由会员分享,可在线阅读,更多相关《键盘命令总结.docx(25页珍藏版)》请在冰豆网上搜索。
键盘命令总结
命令总结
常规命令
定义:
命令中无数据,且回送为明文的命令。
Command
功能
回送
0x80
关密码键盘
无
0x81
请再输入一次密码
实达通用版
0x82
请输入密码
实达通用版
0x83
关密码键盘
无
0x86
请输入密码
明文
ESC[/1
请输入密码
明文
ESC[/2
请再输入一次密码
明文
ESC[/3
关密码键盘
无
01H
请再输入一次密码
02H
请输入密码
03H
关闭密码键盘
04H
请再输入一次密码
ESCI
请输入密码
实达工行版
ESCE
请再输入一次密码
ESCM
请输入密码
ESCL
请再输入一次密码
ESCFESCI
请输入密码
ESCFESCE
请再输入一次密码
ESCG
取数据
ESCN##
设定密码长度
ESCD1#strCRLF
小键盘回显数据
ESCD2#strCRLF
小键盘回显数据
注意密码长度限制问题
加密命令
根据不同厂家归类一下几种命令。
国光系列
交行类
现介绍如下:
1.命令格式
Command格式:
命令字符命令辅助字符命令头命令数据命令尾
注意:
以下指令中的数据均为16进制数,除指令七外,如果请求数据包和响应数据包中有ASCII字符,则16进制数30~39表示ASCII字符‘0’~‘9’,十六进制3A~3F表示ASCII字符‘A’~‘F’。
命令介绍:
1.设置master_key
数据包格式:
12〔address〕〔master_key〕
其中12为数据包功能号;address为master_key地址,长度为一个字节,范围:
0~9;master_key为16个字节的ASCII字符(明文)。
2.选择master_key
数据包格式:
14〔address〕
其中14为数据包功能号;address为master_key地址,长度为一个字节,范围:
0~9。
3.设置working_key
数据包格式:
0D〔working_key〕
其中0D为数据包功能号;working_key为用当前master_key加密的密文,为16个字节的ASCII字符。
需要与命令4,11联合使用
4.接受并且加密PIN
数据包格式:
0C〔account〕
其中0C为数据包功能号;account为持卡人的16为卡号,为16个字节的ASCII字符。
响应数据包格式:
〔pinblock〕
其中pinbiock为加密后的密文,为16个字节的ASCII字符
需要与命令3联合使用
5.接受并且加密PIN
数据包格式:
15〔20〕〔working_key〕〔account〕
其中15为数据包功能号;20为数据包长度,32个字节;working_key为用当前master_key
加密的密文,为16个字节的ASCII字符;account为持卡人的16为卡号,为16个字节的ASCII字符。
响应数据包格式:
〔pinblock〕
其中pinblock为持卡人PIN加密后的密文,为16个字节的ASCII字符
6.设置mac_key
数据包格式:
0F〔mac_key〕
其中0F为数据包功能号;mac_key为用当前master_key加密的密文,为16个字节的ASCII字符。
需要与命令7,9联合使用
7.计算MAC
数据包格式:
10〔datablocklen〕〔datablock〕
其中10为数据包功能号;datablocklen为datablock的长度,必须是16个字节的倍数;datablock为参加MAC计算的数据,为16个字节倍数的ASCII字符。
响应数据包格式:
〔MAC〕
其中MAC为16个字节的ASCII字符。
需要与命令6联合使用
8.计算MAC
数据包格式:
16〔packetlen〕〔mackey〕〔datablock〕
其中16为数据包功能号;packetlen为datablock的长度+16(mackey长度),必须是16个字节的倍数;mackey为用当前mackey加密的密文,为16个字节的ASCII字符;datablock为参加MAC计算的数据,为16个字节倍数的ASCII字符。
响应数据包格式:
〔MAC〕
其中MAC为16个字节的ASCII字符
9.计算MAC
数据包格式:
1D〔datablocklen〕〔datablock〕
其中1D为数据包功能号:
datablocklen为datablock的长度,必须是8个字节的倍数;datablock为参加MAC计算的数据,为8个字节倍数的BCD码十六进制数。
响应数据包格式:
〔MAC〕
其中MAC为16个字节的ASCII字符。
需要与命令6联合使用
10.计算MAC
数据包格式:
1C〔packetlen〕〔mac_key〕〔datablock〕
其中1C为数据包功能号;packetlen为datablock的长度+8(mackey长度),必须是8个字节的倍数;mackey为用当前master_key加密的密文,为8个字节的BCD码十六进制数;datablock为参加MAC计算的数据,为8个字节倍数的BCD码十六进制数。
响应数据包格式:
〔MAC〕
其中MAC为16个字节的ASCII字符。
11.修改持卡人PIN
请求数据包格式:
0E〔account〕
其中0E为数据包功能号;account为持卡人的16位卡号,为16个字节的ASCII字符。
响应数据包格式:
〔oldpinblock〕〔newpinblock〕
其中oldpinblock为持卡人旧PIN加密后的密文,为16个字节的ASCII字符;newpinblock为持卡人新PIN加密后的密文,为16个字节的ASCII字符。
需要与命令3联合使用
12.修改持卡人PIN
请求数据包格式:
1B〔20〕〔working_key〕〔account〕
其中1B为数据包功能号;20为数据包长度,32个字节;working_key为用当前master_key加密的密文,为16个字节的ASCII字符;account为持卡人的16位卡号,为16个字节的ASCII字符。
响应数据包格式:
〔oldpinblock〕〔newpinblock〕
其中oldpinblock为持卡人旧PIN加密的密文,为16个字节的ASCII字符,newpinblock为持卡人新PIN加密后的密文,为16个字节的ASCII字符。
13.显示停留在显示屏上,除非下一数据包刷新显示屏
请求数据包格式:
18〔displayline〕〔displaytime〕〔messagelen〕〔message〕
其中18为数据包功能号;displaylin为在显示屏上显示字符串的行号,如果displaylin=01,则在显示屏的第一行显示,如果displaylin=02,则在显示屏的第二行显示;displaytime为显示字符串在显示屏上停留的时间,在此数据包中此项参数实际上无用,长度为1个字节,0-OFF均可;messagelen为显示字符串message长度;message为显示字符串,在数据包中以ASCII表示,长度为0~F个字符。
14.显示停留在显示屏上一定时间后自动刷新,停留时间个控制
请求数据包格式:
19〔displayline〕〔displaytime〕〔messagelen〕〔message〕
其中19为数据包功能号;displayline为在显示屏上显示字符串的行号,如果displayline=01,则在显示屏的第一行显示,如果displayline=02,则在显示屏的第二行显示;displaytime为显示字符串在显示屏上停留的时间,长度为1个字节,0—OFF均可,表示显示字符串在显示屏停留0—FF秒,之后显示屏自动刷新;messagelen为显示字符串message长度;message为显示字符串,在数据包中以ASCII表示,长度为0~F个字节。
15.在密码键盘上显示固定提示信息
请求数据包格式:
1A〔displayline〕〔fixedpromptnumber〕
其中1A为数据包功能号;displayline为在显示屏上显示固定提示信息的行号,如果displayline=01,则在显示屏的第一行显示,如果displayline=02,则在显示屏的第二行显示;fixedpromptnumber为固定提示信息号码,长度为一个字节,其与固定提示信息内容的对应关系如下:
0.
1.正在处理中…
2.请输入密码:
3.您的帐户余额为:
4.输入日期:
MMDDYY
5.无效密码!
6.请稍候…
7.正在打印…
8.交易成功!
9.成功!
A.请重新输入:
B.请输入有效期:
YYMM
C.谢谢您!
D.请确认金额:
E.请确认取款金额:
F.请确认存款金额:
10.请确认消费金额:
12.请确认授权金额:
14.请确认转帐金额:
15.交易失败!
16.正在通讯…
17.系统故障
18.暂停营业
19.欢迎您使用
1A.国光密码键盘
1B.密码键盘
1C.国光
1D.您输入的密码错
1E.请重新输入密码:
16.请求密码键盘传输响应数据包
请求数据包格式:
1E
其中1E为数据包功能号。
响应数据包格式:
[responsedatablocklen][responsedatablock]
以上有响应数据包的功能,其请求数据包发出后,响应数据包格式如上,其中responsedatablocklen为密码键盘已准备好的responsedatablock(响应数据包)长度,为十六进制数12或者22。
responsedatablock(响应数据包)格式同以上各功能相应的响应数据包。
17.请求数据包中加密密钥为经master_key加密的密文
请求数据包格式:
05[packetlen][cipher_key][datablock]
其中05为数据包功能号;packetlen为datablock的长度+8(cipher_key长度),必须是8个字节的倍数;cipher_key为用当前master_key加密的密文,为8个字节的BCD码十六进制数;datablock为请求加密的数据块,为8个字节倍数的BCD码十六进制数。
响应数据包格式:
[encrypted_data_block]
其中encrypted_data_block为请求数据包中(datablock的长度)×2个字节的ASCII字符。
18.请求数据包中加密密钥为明文
请求数据包格式:
20[packetlen][plain_key][datablock]
其中20为数据包功能号;packetlen为datablock的长度+8(plain_key长度),必须是8个字节的倍数;plain_key为加密数据块密钥的明文,为8个字节的BCD码十六进制数;datablock为请求加密的数据块,为8个字节倍数的BCD码十六进制数。
响应数据包格式:
[encrypted_data_block]
其中encrypted_data_block为请求数据包中(datablock的长度)2个字节的ASCII字符。
19.请求数据包中加密密钥为经master_key加密的密文
请求数据包格式:
06[packetlen][cipher_key][datablock]
其中06为数据包功能号;packetlen为datablock的长度+8(cipher_key长度),必须是8个字节的倍数;cipher_key为用当前master_key加密的密文,为8个字节的BCD码十六进制数;datablock为请求解密的数据块,为8个字节倍数的BCD码十六进制数。
响应数据包格式:
[decrypted_data_block]
其中decrypted_data_block为请求数据包中(datablock的长度)×2个字节的ASCII字符。
20.请求数据包中解密密钥为明文
请求数据包格式:
21[packetlen][plain_key][datablock]
其中21为数据包功能号;packetlen为datablock的长度+8(plain_key长度),必须是8个字节的倍数;plain_key为解密数据块密钥的明文,为8个字节的BCD码十六进制数;datablock为请求解密的数据块,为8个字节倍数的BCD码十六进制数。
响应数据包格式:
[decrypted_data_block]
其中decrypted_data_block为请求数据包中(datablock的长度)×2个字节的ASCII字符。
以上为最常规的交行命令,命令不全,请参看5.173
第二类
请注意:
以下指令中的数据均为十六进制数,请求数据包和响应数据包中的密钥和密文数据均是拆分传输,
拆分规则:
把每个BYTE分成高低四位,转换成两个BYTE的16进制数的字符,
如例:
34H-33H34H,5AH-35H41H,CFH-43H46H
加密
按键必须按确认键结束回送密码,否则一直等待;密码长度4~12位。
响应数据包格式:
〔10〕〔pinblock〕
一、设置master_key
请求数据包格式:
1B4D〔master_keyaddress〕〔master_key〕
其中4D为数据包功能号;master_keyaddress为master_key地址,长度一个字节,范围:
0~7;master_key为拆分的之后的16个字节的ASCII字符(明文)。
响应数据包格式:
正确:
AAH
错误:
55H
二、设置working_key
请求数据包格式:
1B57〔master_keyaddress〕〔working_keyaddress〕〔working_key〕
其中57为数据包功能号;master_keyaddress为master_key地址,长度一个字节,范围:
0~7;working_keyaddress为working_key地址,长度一个字节,范围:
0~7;working_key为用
master_keyaddress所对应的master_key加密的密文,为拆分之后的16个字节的ASCII字符。
响应数据包格式:
正确:
AAH
错误:
55H
三、恢复出厂设置
请求数据包格式:
1B52
其中52为数据包功能号;将密码键盘初始化成8组主密钥全为8个38H,8组工作密钥全为8个30H。
响应数据包格式:
正确:
AAH
错误:
55H
四、设置单DES模式
请求数据包格式:
1B41〔working_keyaddress〕
其中41为数据包功能号;working_keyaddress为working_key地址,长度一个字节,
范围:
0~7;
响应数据包格式:
正确:
AAH
错误:
55H
五、设置3DES模式
请求数据包格式:
1B42〔working_keyaddress1〕〔working_keyaddress2〕〔working_keyaddress3〕
其中42为数据包功能号;working_keyaddress1、working_keyaddress2、
working_keyaddress3均为working_key地址,长度均一个字节,范围:
0~7;
响应数据包格式:
正确:
AAH
错误:
55H
六、激活密码键盘(ANSI9.8方式)
请求数据包格式:
1B4630Account
Account:
16字节的帐号
密码键盘提示:
请输入密码;
响应数据包格式:
〔10〕〔pinblock〕
七、激活密码键盘(ANSI9.8方式)
请求数据包格式:
1B4631Account
Account:
16字节的帐号
密码键盘提示:
请再输入一次;
响应数据包格式:
〔10〕〔pinblock〕
第三类
注意此套命令的密钥为即送即用
命令1:
1BHF60D0A
功能:
输入密码
备注:
语音“您好,请输入密码”,密码长度4位――8位
操作:
按键
回送:
格式为02Hlongdesdata,long为回送数据长度,desdata为加密后的密文
命令2:
1BHF70D0A
功能:
输入密码
备注:
语音“请再输入一次密码”,密码长度4位――8位
操作:
按键
回送:
格式为02Hlongdesdata,long为回送数据长度,desdata为加密后的密文
命令3:
1BHE60D0A
功能:
输入密码
备注:
语音“您好,请输入密码”,密码长度4位――12位
操作:
按键
回送:
无
命令4:
1BHE70D0A
功能:
输入密码
备注:
语音“请再输入一次密码”,密码长度4位――12位
操作:
按键
回送:
无
命令5:
mmkeyaddromkeynmkey0D0A
功能:
修改主密钥
备注:
mkeyaddr为主密钥号,长度一个字节,无意义omkey为原主密钥(经过拆分后的16字节数),无意义,nmkey为原主密钥(经过拆分后的16字节数)
操作:
无
回送:
正确02H02H4FH4BH错误02H02H45H52H
命令6:
1BHkmkeyaddrwkeyaddrnwkey0DH0AH
功能:
修改工作密钥
备注:
mkeyaddr为主密钥号,长度一个字节,无意义,wkeyaddr为工作密钥,长度一个字节,nwkey为新工作密钥(经过拆分后的16字节数)
操作:
无
回送:
正确02H02H4FH4BH错误02H02H45H52H
命令7:
1BHR0DH0AH
功能:
复位
备注:
修改工作密钥为00000000
操作:
无
回送:
04H
命令8:
1BHG0DH0AH
功能:
取数据包
备注:
格式为02Hlongdesdata,long为回送数据长度,desdata为加密后的密文
操作:
无
回送:
正确02H02H4FH4BH错误02H02H45H52H
第四类
1.ESCF0CRLF(0x1B0x460x300x0D0x0A)
功能:
语音提示“您好,请输入密码”,液晶显示“INPUTPASSWORD”/“请输入密码”/绿灯亮,红灯灭,允许输入。
输入密码和当前密钥一同作DES加密运算,产生密文经拆分
后一同送入主系统。
数据返回格式为STX(0x02)SLE(0x10)STRING(16字节字符串)
2.ESCF1CRLF(0x1B0x460x310x0D0x0A)
功能:
语音提示“请再输入一次密码”,液晶显示“PLEASERETRY”/“请再输入密码”/绿灯
灭,红灯亮,允许输入。
输入密码和当前密钥一同作DES加密运算,产生密文经拆分
后一同送入主系统。
数据返回格式为STX(0x02)SLE(0x10)STRING(16字节字符串)
3.ESCMPOKNKCRLF(0x1B0x4DPOKNK0x0D0x0A)
功能:
修改密码键盘主密钥。
备注:
只有原主密钥等于机内主密钥时才能修改。
P主密钥区号(0x00=
16字节的经拆分后的原主密钥,NK为16字节的经拆分后的新主密钥。
命令完成后,若
成功则返回0xAA,失败返回0x55。
4.ESCUMNMKUKCRLF(0x1B0x55MNMKUK0x0D0x0A)
功能:
修改密码键盘主密钥号为M工作密钥为N的工作密钥。
备注:
只有下传主密钥等于机内主密钥时才能修改。
M主密钥区号(0x00=的经拆分后的工作密钥,命令完成后,若成功则返回0xAA,失败返回0x55。
5.ESCSMNLSSCRLF(0x1B0x53MNLSS0x0D0x0A)
功能:
修改密码键盘主密钥号为M工作密钥为N的工作密钥。
备注:
将长度为LS(字符串长度=0x10)的S(经过拆分)进行DES解密,然后将结果作为主密钥号M((0x00=6.ESCAMNCRLF(0x1B0x41MN0x0D0x0A)
功能:
激活主密钥为M工作密钥为N的工作密钥。
备注:
M(主密钥号)(0x00=7.ESCRCRLF(0x1B0x520x0D0x0A)
功能:
将密码键盘复位成出厂状态。
备注:
出厂状态主密钥全为88888888工作密钥全为00000000激活主密钥号为0工作密钥号为0的工作密钥。
命令完成后,若成功则返回0xAA,失败则返回0x55。
8.ESCH0LENDATACRLF(0x1B0x480x30LENDATA0x0D0x0A)
功能:
将长度为LEN(LEN=0x10)的DATA(经过拆分)和当前密钥一同作DES加密运算,命令完
成后若成功回送0xAA产生密文暂存于加密键盘内,失败回送0x55。
若收到取数命令
ESC+G+0D+0A则按下述格式返回
数据返回格式为STX(0x02)SLE(0x10)STRING(16字节字符串)
9.ESCH1LENDATACRLF(0x1B0x480x31LENDATA0x0D0x0A)
功能:
将长度为LEN(LEN=0x10)的DATA(经过拆分)和当前密钥一同作DE