江苏中石化支付功能授权码 授权码保存文件 /mnt/flash/SINOPEC/authorization 保存内容: 功能号4字节(0001),授权码(8位:asc),换行符 。。。 8位源数据,前6位为CPU_ID;末2位为功能号码 CPU_ID每位值加上0x11后展示给UI 密钥 TKHenShanTQC2022 1、计算获取授权码函数 void GetCalAuthCode(unsigned short func_num ,char *str_CalCode) { 计算授权码 } 2、匹配授权码是否正确函数 BOOL CheckAuthorizeCode(char *menu_id,const char *value){} 系统启动时调用此函数校验授权码是否正确存在,不存在则禁止此功能的使能 菜单输入授权码时调用,判断授权码正确,则使能此功能 并保存此授权码 3、启动时校验授权码是否存在并且正确,若不正确则禁止使能该功能 BOOL CheckAuthCodeOK(char *menu_id) 4、获取CPUID转换供给UI显示 void CPUIDConvert(char *menu_id) ==================授权码生成规则:============================== 一、从油机菜单中获取ID,输入到PC工具中,PC工具根据此ID每个字节的16进制码减去0x11得到输入UUID 二、UUID(6字节)+功能码(2字节BCD码)组成8字节加密输入源 三、采用3DES以密钥TKHenShanTQC2022加密输入源得出的字符串,获取授权码 四、3DES加密计算后得到的字符串取前六个数字,如果数字不够六个,则从第一个英文字母取其ASC16(大写)进制值的高低4位值转成字符后赋值补种不够的数字。 如"A"十六进制为0x41,则取值后为"4"和"1" ======修改增加菜单: 添加一个菜单,在使能前需要输入授权码 增加029k00 的下一级菜单029k10作为配置开关使能 弹出输入授权码菜单时, \Region\China\languages\China_dispenser_text.ini [029k00] T1=1 请输入授权码: [029k10] T1=1 关闭 T2=2 开启 ===========xml: \Region\China\menu\dispenser_menu.xml [T1] [T1] [T2] ==========xsl: E:\Work\ubuntuMnt\TQC_Resource\Region\China\menu\dispenser_menu_xsl.xml /menu_ref/Operating_Menu.xml /menu_ref/Operating_Access.xml min=0;max=9999999999; type=int;len=10;file=Operating_Menu.xml;path=//CONFIGURATION/AUTHORIZE_FUNC_CODE;value= ****** /home/TQC/Appl/UTN11/Operating_Config.xml /home/TQC/Appl/UTN11/Operating_Access.xml checked=;value=;file=Operating_Config.xml;path=//SINOPEC_SETTING/OPTIONAL_FUNCTIONS/function[@id='22']/value checked=;value=;file=Operating_Config.xml;path=//SINOPEC_SETTING/OPTIONAL_FUNCTIONS/function[@id='22']/value VWWIGCAIVGCIAAAB