CN103312508A - 一种动态令牌的工作方法 - Google Patents

一种动态令牌的工作方法 Download PDF

Info

Publication number
CN103312508A
CN103312508A CN2013101798705A CN201310179870A CN103312508A CN 103312508 A CN103312508 A CN 103312508A CN 2013101798705 A CN2013101798705 A CN 2013101798705A CN 201310179870 A CN201310179870 A CN 201310179870A CN 103312508 A CN103312508 A CN 103312508A
Authority
CN
China
Prior art keywords
execution
sign
button
bluetooth
rolling counters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2013101798705A
Other languages
English (en)
Inventor
陆舟
于华章
邵黎明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN2013101798705A priority Critical patent/CN103312508A/zh
Priority to CN201310404877.2A priority patent/CN103457741B/zh
Publication of CN103312508A publication Critical patent/CN103312508A/zh
Priority to US14/777,768 priority patent/US9781104B2/en
Priority to PCT/CN2014/073602 priority patent/WO2014183500A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开一种动态令牌的工作方法,涉及通信领域,该方法包括,当令牌被唤醒时,判断置位的唤醒标识类型;如是按键唤醒标识则检测键值,根据被按下的按键执行相应操作;如是蓝牙数据唤醒标识,则接收蓝牙数据,当蓝牙数据接收完成时,则将蓝牙数据保存至接收数据缓存区,将蓝牙数据唤醒标识复位;如果是蓝牙连接唤醒标识,则显示蓝牙已连接,延时第四预设时间后清屏,将蓝牙连接唤醒标识复位;如果是蓝牙断开唤醒标识,则显示蓝牙连接已断开,清空接收数据缓存区,将蓝牙断开唤醒标识复位;如是其他唤醒标识,则根据唤醒标识执行相应操作。

Description

一种动态令牌的工作方法
技术领域
本发明涉及身份认证领域,特别涉及到一种动态令牌的工作方法。
背景技术
动态令牌最大的优点在于,用户每次使用的口令都不相同,使得不法分子无法仿冒合法用户的身份。动态口令认证技术被认为是目前能够最有效解决用户的身份认证方式之一,可以有效防范黑客木马盗窃用户账户口令、假网站等多种网络问题,避免用户的财产或者资料的损失。
比起传统的动态令牌,用户输入的信息参与动态口令生成的动态令牌安全性更高,目前,用户输入的信息参与动态口令生成的动态令牌都自带键盘,用户信息由用户通过动态令牌自带的键盘输入。
发明人在实现本发明的过程中,发现当所需输入的用户信息较多、数据量较大时,人为输入用户信息速度慢、错误率高,且由于输入错误的数据不易察觉和更改,浪费用户时间的同时也带来不必要的麻烦。
发明内容
为解决现有技术中存在的问题,本发明提供了一种动态令牌的工作方法,包括,
当有按键被按下时,将按键唤醒标识置位;当通过蓝牙通道收到蓝牙数据时,将蓝牙数据唤醒标识置位;当通过蓝牙与上位机建立连接时,将蓝牙连接唤醒标识置位;当蓝牙与上位机断开连接时,将蓝牙断开唤醒标识置位;
步骤S1:判断是否存在置位的唤醒标识;是则执行步骤S2;否则,令牌休眠;
步骤S2:判断置位的唤醒标识的类型;如是按键唤醒标识,则执行步骤S3;如是蓝牙数据唤醒标识,则执行步骤S9;如是蓝牙连接唤醒标识,则第四预设时间后清屏,将蓝牙连接唤醒标识复位,返回步骤S1;如是蓝牙断开唤醒标识,则清空接收数据缓存区,将蓝牙断开唤醒标识复位,返回步骤S1;
步骤S3:接收按键信息判断按键类型,如果是电源键,则执行步骤S4;如果是其他键值,则执行步骤S5;
步骤S4:判断系统状态标识是否是关机标识,是则对液晶屏上电初始化,将系统状态标识保存为检查密码标识,将按键唤醒标识复位,返回步骤S1;否则对蓝牙模块下电,将按键唤醒标识复位,返回步骤S1;
步骤S5:检测系统状态标识,如果是检查密码标识,则执行步骤S6;如果是挑战应答标识,则执行步骤S7;如果是蓝牙OTP标识,则执行步骤S8;如果是其他标识则根据标识执行相应操作,返回步骤S1;
步骤S6:进行检查密码操作,当密码正确时,判断蓝牙模块工作电压是否低于预设电压,是则提示蓝牙模块工作电压低,工作电压低状态达到第一预设时间后,将系统状态标识保存为输入挑战码标识,将按键唤醒标识复位,返回步骤S1;否则,对蓝牙模块上电,将系统状态标识保存为蓝牙OTP标识,将蓝牙模块切换至监听模式,将按键唤醒标识复位,返回步骤S1;当密码不正确时,将按键唤醒标识复位,显示令牌被锁定,退出检查密码操作,返回步骤S1;
步骤S7:根据收到的按键信息获取对应的动态因子,根据所述动态因子计算动态口令,更新动态因子,将计算得到的动态口令返回给上位机,将按键唤醒标识复位,返回步骤S1;
步骤S8:判断蓝牙数据接收完成标识是否置位,是则读取接收数据缓存区中的数据,将其作为动态因子,根据所述动态因子计算动态口令,将计算得到的动态口令返回给上位机,清空接收数据缓存区,将按键唤醒标识复位,返回步骤S1;否则,根据收到的按键信息获取对应的动态因子,根据所述动态因子计算动态口令,将计算得到的动态口令返回给上位机,将按键唤醒标识复位,返回步骤S1;
步骤S9:接收蓝牙数据,将所述蓝牙数据保存至接收数据缓存区,将蓝牙数据接收完成标识置位,将所述蓝牙数据唤醒标识复位,返回步骤S1。
所述步骤S1之前还包括,令牌初始化微控制单元,初始化随机存储器,并将全局变量清零,将所有的唤醒标识复位,将系统状态标识保存为关机标识,打开按键中断和/或蓝牙数据中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断,然后令牌休眠。
所述步骤S6中所述检查密码操作具体包括,
步骤E1:检测键值,若是OK键,则执行步骤E2;若是数字键并且按键数据长度小于预设长度,则将数字键对应的按键数据保存至按键数据缓存区,显示检查密码界面,退出检查密码操作;若是其他键值则根据键值执行相应操作,退出检查密码操作;
步骤E2:判断按键数据缓存区中的密码是否正确,若密码正确,则执行步骤E3;否则,执行步骤E4;
步骤E3:提示密码正确,将密码失败次数清零,延时第四预设时间,清空按键数据缓存区,确定密码正确,退出检查密码操作;
步骤E4:密码失败次数加1,显示密码失败界面,延时第四预设时间,执行步骤E5;
步骤E5:判断密码失败次数是否等于预设次数;
是则清空按键数据缓存区,确定密码不正确,退出检查密码操作;否则,显示密码输入界面,清空按键数据缓存区,退出检查密码操作。
所述步骤S6中对蓝牙模块上电与蓝牙模块切换至监听模式之间还包括,显示蓝牙OTP界面,蓝牙模式计数器计数值置为0,蓝牙连接中断标识复位,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识复位,清空按键数据缓存区。
所述步骤S7还包括,根据收到的按键信息判断按键类型,如是OK键则执行步骤S7;如是数字键并且按键数据长度小于预设长度,则将数字键对应的按键数据保存至按键数据缓存区,将按键数据长度加1;如是删除键则执行步骤A1;
步骤A1:判断删除键被按下的时间是否达到预设时长;
是则执行步骤A2;否则,执行步骤A5;
步骤A2:判断按键数据长度是否等于0;
如果等于0,则执行步骤A3;否则,执行步骤A4;
步骤A3:显示菜单界面,将系统状态标识保存为菜单功能选择标识,然后退出挑战应答操作;
步骤A4:清空按键数据缓存区,显示输入挑战码信息界面,将按键数据长度置为0,然后退出挑战应答操作;
步骤A5:判断按键数据长度是否等于0;
如果等于0,则执行步骤A7;否则,执行步骤A6;
步骤A6:按键数据长度减1,清除按键数据缓存区中最后存入键值;然后执行步骤A7;
步骤A7:显示输入挑战码信息界面,显示按键数据缓存区中的数据,然后,退出挑战应答操作。
所述步骤S5中其他标识还包括菜单功能选择标识,如是菜单功能选择标识,则进行菜单功能选择操作包括,
步骤H1:检测键值,如果是OK键,则执行步骤H2;
如果其他键值,则根据键值执行相应操作,退出菜单功能选择操作,其他键值包括右键和左键;
步骤H2:判断选择的功能,如果是蓝牙OTP,则执行步骤H3;
如果是其他的功能,则执行相应功能选择操作,然后退出菜单功能选择操作;
步骤H3:蓝牙模块上电,显示蓝牙OTP界面,系统状态标识保存为蓝牙OTP标识,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识置位,执行步骤H4;
步骤H4:读取蓝牙模块参数;
步骤H5:判断读取蓝牙模块参数是否成功;
如果读取成功,则执行步骤H6;否则执行步骤H7;
步骤H6:蓝牙模块切换为监听模式,退出菜单功能选择操作;
步骤H7:读取蓝牙模块参数次数加1;
步骤H8:判断读取蓝牙模块参数次数是否达到第六预设值;
如果是,则执行步骤H9;否则,返回步骤H4;
步骤H9:提示蓝牙模块损坏,给蓝牙模块下电,延时第三预设时间,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,退出菜单功能选择操作。
所述步骤S8之前还包括,
步骤F1:根据收到的按键消息判断按键类型,如是删除键,则执行步骤F2;如果是数字键,则执行步骤F8;如果是OK键,则执行步骤S8;如果是其他按键则根据按键类型执行相应操作,退出蓝牙OTP操作;
步骤F2:判断删除键被按下的时间是否达到预设时长;
是则执行步骤F3;否则,执行步骤F4;
步骤F3:显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,退出蓝牙OTP操作;
步骤F4:判断蓝牙数据接收完成标识是否置位;
是则退出蓝牙OTP操作;否则,执行步骤F5;
步骤F5:判断蓝牙OTP允许按键输入标识是否置位;
是则执行步骤F6;否则,退出蓝牙OTP操作;
步骤F6:判断按键数据长度是否等于0;
是则退出蓝牙OTP操作;否则,执行步骤F7;
步骤F7:按键数据长度减1,清除按键数据缓存区中最后存入的键值,显示按键数据缓存区中的数据,然后退出蓝牙OTP操作;
步骤F8:判断是否同时满足蓝牙OTP允许按键输入标识置位和按键数据长度小于预设长度;
如果是,则执行步骤F9;否则,退出蓝牙OTP操作;
步骤F9:按键数据长度加1,将相应的键值保存到按键数据缓存区,显示相应键值,然后退出蓝牙OTP操作。
所述根据收到的按键消息获取对应的动态因子具体为:
所述令牌判断按键数据长度是否等于0,是则获取令牌内部的时间因子或事件因子作为动态因子;否则获取按键数据缓存区中的数据,并将其作为动态因子。
所述判断按键数据长度是否等于0的判断结果为否时,还包括,获取令牌内部的时间因子和/或事件因子,将时间因子和/或事件因子与所述按键数据缓存区中的数据的组合作为动态因子;
当动态因子包括事件因子时,计算动态口令后,所述更新动态因子具体为,事件因子加1;
当动态因子包括按键数据缓存区中的数据时,计算动态口令后,清空所述按键数据缓存区。
所述步骤S8中根据收到的按键消息获取对应的动态因子之前还包括,
判断蓝牙OTP允许按键输入标识是否置位,是则继续执行;否则将按键唤醒标识复位,返回步骤S1。
所述将计算得到的动态口令返回给上位机具体为,通过液晶屏显示所述动态口令和/或通过蓝牙通道将所述动态口令返回给上位机。
所述将计算得到的动态口令返回给上位机之后还包括,将系统状态标识保存为等待标识。
所述步骤S3中接收按键消息之后还包括,判断键值是否为空,是则将无按键计数器计数值置为0,判断键值类型,然后继续执行;否则,将按键唤醒标识复位,返回步骤S1。
当检测到定时器中断时执行定时器中断操作,具体包括,
步骤c1:秒计数器计数值加1,检测秒计数器计数值,如果秒计数器计数值等于第一时间间隔,则秒计数器计数值清零,时间因子加1,事件因子清零,校准计数器计数值加1,执行步骤c3;如果秒计数器计数值等于第二时间间隔并且校准计数器计数值大于等于校准值,则将校准计数器计数值减去校准值的结果保存为新的校准计数器计数值,执行步骤c4;否则,将定时器唤醒标识置位;
步骤c3:判断系统状态标识是否为等待标识,如果是则关闭液晶显示屏,系统状态标识保存为关机标识,将定时器唤醒标识置位;否则,返回步骤c2;
步骤c4:判断校准方向标识是否置位,如果置位,则秒计数器计数值减1,将定时器唤醒标识置位;否则,秒计数器计数值加1,将定时器唤醒标识置位;其中,校准方向标识置位或复位是由出厂前设置。
所述步骤S2中如是定时器唤醒标识时,执行操作包括,
步骤G1:判断系统状态标识是否为蓝牙OTP标识;
是则蓝牙模式计数器计数值加1,执行步骤G2;否则,执行步骤G7;
步骤G2:判断蓝牙模式计数器计数值是否小于第一预设值;
是则执行步骤G5;否则,执行步骤G3;
步骤G3:判断主动选择蓝牙标识是否置位;是则执行步骤G4;否则,蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,然后执骤G7;
步骤G4:将蓝牙模式计数器计数值置为0,对蓝牙模块下电,将蓝牙OTP允许按键输入标识置位,然后执行步骤G7;
步骤G5:检测蓝牙模块工作电压是否低于预设电压,若低于预设电压,则执行步骤G6;若不低于预设电压,则执行步骤G7;
步骤G6:蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,通过液晶显示屏输出工作电压低请充电后再使用蓝牙功能的提示信息,执行步骤G7;
步骤G7:判断系统状态标识是否为等待标识;
是则执行步骤G8;否则;执行步骤G9;
步骤G8:显示时间条,执行步骤G9;
步骤G9:判断系统状态标识是否为输入挑战码标识;
是则执行步骤G10;否则,执行步骤G20;
步骤G10:无按键计数器计数值加1;
步骤G11:判断无按键计数器计数值是否小于第二预设值;
是则执行步骤G13;否则,执行步骤G12;
步骤G12:将无按键计数器计数值置为0,将系统状态标识保存为关机标识,然后执行步骤G20;
步骤G13:判断是否有按键被按下;
如果有按键被按下,则执行步骤G14;否则,执行步骤G17;
步骤G14:按键按下计数器计数值加1,将按键松开计数器计数值置为0;
步骤G15:判断按键按下计数器计数值是否大于第三预设值;
是则执行步骤G16;否则,执行步骤G20;
步骤G16:将按键按下计数器计数值置为0,关闭按键中断,执行步骤G20;
步骤G17:按键松开计数器计数值加1,按键按下计数器计数值置为0,然后执行步骤G18;
步骤G18:判断按键松开计数器计数值是否大于第四预设值;
是则执行步骤G19;否则,执行步骤G20;
步骤G19:将按键松开计数器计数值置为0,打开按键中断,执行步骤G20;
步骤G20:将定时器唤醒标识复位。
一种动态令牌的工作方法,包括,
令牌初始化,打开按键中断和/或蓝牙数据中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断,令牌休眠;
当令牌检测到按键中断时,令牌被唤醒,执行步骤S-1;
步骤S-1:判断被按下的按键是否为电源键,是则,执行步骤S-2;若被按下的不是电源键,则检测系统状态标识,如果是检查密码标识则执行步骤S-3;如果是输入挑战码标识,则执行步骤S-4;如果是蓝牙OTP标识,则执行步骤S-5;
步骤S-2:判断系统状态标识是否为关机标识,是则,对液晶显示屏上电初始化,将系统状态标识保存为检查密码标识,将按键中断标识复位,令牌休眠;否则,系统状态标识保存为关机标识,对蓝牙模块下电,将按键中断标识复位,令牌休眠;
步骤S-3:进行检查密码操作,当密码正确时,判断蓝牙模块工作电压是否低于预设电压,是则提示蓝牙模块工作电压低,工作电压低状态达到第一预设时间后,将系统状态标识保存为输入挑战码标识,将按键中断标识复位,令牌休眠;否则,对蓝牙模块上电,将系统状态标识保存为蓝牙OTP标识,将蓝牙模块切换至监听模式,将按键中断标识复位,令牌休眠;当密码不正确时,显示令牌被锁定,将按键中断标识复位,令牌休眠;
步骤S-4:根据键值获取动态因子,根据所述动态因子计算动态口令,更新动态因子,将计算得到的动态口令返回给上位机,将按键中断标识复位,令牌休眠;
步骤S-5:判断蓝牙数据接收完成标识是否置位,是则读取接收数据缓存区中的数据,将其作为动态因子,根据所述动态因子计算动态口令,将计算得到的动态口令返回给上位机,将按键中断标识复位,令牌休眠;否则,根据键值获取对应的动态因子,根据所述动态因子计算动态口令,更新动态因子,将计算得到的动态口令返回给上位机,将按键中断标识复位,令牌休眠;
当令牌检测到蓝牙数据中断时,接收蓝牙数据,将所述蓝牙数据保存至接收数据缓存区,将蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,然后令牌休眠;
当令牌检测到蓝牙连接中断时,显示蓝牙已连接,预设时间后清屏,将蓝牙连接中断标识复位,然后令牌休眠;
当令牌检测到蓝牙断开中断时,清空接收数据缓存区,将蓝牙断开中断标识复位,令牌休眠。
所述令牌初始化具体为,
令牌初始化微控制单元,初始化随机存储器,并将全局变量清零,将所有的中断标识复位,将系统状态标识保存为关机标识。
所述步骤S-3中的所述检查密码操作具体包括,
步骤E-1:检测键值,若是OK键,则执行步骤E-2;若是数字键并且按键数据长度小于预设长度,则将相应的键值保存至按键数据缓存区,显示检查密码界面,退出检查密码操作;若是其他键值则根据键值执行相应操作,退出检查密码操作;
步骤E-2:判断按键数据缓存区中的密码是否正确,若密码正确,则执行步骤E-3;否则,执行步骤E-4;
步骤E-3:提示密码正确,将密码失败次数清零,延时第四预设时间,清空按键数据缓存区,确定密码正确,退出检查密码操作;
步骤E-4:密码失败次数加1,显示密码失败界面,延时第四预设时间,执行步骤E-5;
步骤E-5:判断密码失败次数是否等于预设次数;
是则清空按键数据缓存区,确定密码不正确,退出检查密码操作;否则,显示密码输入界面,清空按键数据缓存区,退出检查密码操作。
所述步骤S-3中对蓝牙模块上电与蓝牙模块切换至监听模式之间还包括,显示蓝牙OTP界面,蓝牙模式计数器计数值置为0,蓝牙连接中断标识复位,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识复位,清空按键数据缓存区。
所述步骤S-4还包括,检测收到的按键消息,如是OK键则执行步骤S7;如是数字键并且按键数据长度小于预设长度,则将相应的键值保存至按键数据缓存区,将按键数据长度加1;如是删除键则执行步骤A1;
步骤A1:判断删除键被按下的时间是否达到预设时长;
是则执行步骤A2;否则,执行步骤A5;
步骤A2:判断按键数据长度是否等于0;
如果等于0,则执行步骤A3;否则,执行步骤A4;
步骤A3:显示菜单界面,将系统状态标识保存为菜单功能选择标识,然后退出挑战应答操作;
步骤A4:清空按键数据缓存区,显示输入挑战码信息界面,将按键数据长度置为0,然后退出挑战应答操作;
步骤A5:判断按键数据长度是否等于0;
如果等于0,则执行步骤A7;否则,执行步骤A6;
步骤A6:按键数据长度减1,清除按键数据缓存区中最后存入键值;然后执行步骤A7;
步骤A7:显示输入挑战码信息界面,显示按键数据缓存区中的数据,然后,退出挑战应答操作。
所述步骤S-2中其他标识还包括,菜单功能选择标识,当系统状态标识是菜单功能选择标识时,则进行菜单功能选择操作,包括,
步骤H1:检索键值,如果是OK键,则执行步骤H2;
如果其他键值,则根据键值执行相应操作,退出菜单功能选择操作,其他键值包括右键和左键;
步骤H2:判断选择的功能,如果是蓝牙OTP,则执行步骤H3;
如果是其他的功能,则执行相应功能选择操作,然后退出菜单功能选择操作;
步骤H3:蓝牙模块上电,显示蓝牙OTP界面,系统状态标识保存为蓝牙OTP标识,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识置位,执行步骤H4;
步骤H4:读取蓝牙模块参数;
步骤H5:判断读取蓝牙模块参数是否成功;
如果读取成功,则执行步骤H6;否则执行步骤H7;
步骤H6:蓝牙模块切换为监听模式,退出菜单功能选择操作;
步骤H7:读取蓝牙模块参数次数加1;
步骤H8:判断读取蓝牙模块参数次数是否达到第六预设值;
如果是,则执行步骤H9;否则,返回步骤H4;
步骤H9:提示蓝牙模块损坏,给蓝牙模块下电,延时第三预设时间,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,退出菜单功能选择操作。
所述将计算得到的动态口令返回给上位机之后还包括,将系统状态标识保存为等待标识。
所述步骤S3中接收按键消息之后还包括,判断键值是否为空,是则将无按键计数器计数值置为0,判断键值类型,然后继续执行;否则,将按键唤醒标识复位,返回步骤S1。
当检测到定时器中断时执行定时器中断操作,具体包括,
步骤c-1:秒计数器计数值加1,检测秒计数器计数值,如果秒计数器计数值等于第一时间间隔,则执行步骤c-2;如果秒计数器计数值等于第二时间间隔并且校准计数器计数值大于等于校准值,则执行步骤c-4;如果为其他值,则执行定时操作,将定时器中断标识复位,令牌休眠;
步骤c-2:秒计数器计数值清零,时间因子加1,事件因子清零,校准计数器计数值加1,执行步骤c-3;
步骤c-3:判断系统状态标识是否为等待标识,是则关闭液晶显示屏,系统状态标识保存为关机标识,执行定时操作,将定时器中断标识复位,令牌休眠;否则,返回步骤c-1;
步骤c-4:将校准计数器计数值减去校准值的结果保存为新的校准计数器计数值;判断校准方向标识是否置位,是则秒计数器计数值减1,执行定时操作,将定时器中断标识复位,令牌休眠;否则,秒计数器计数值加1,执行定时操作,将定时器中断标识复位;其中,校准方向标识置位或复位是由出厂前设置。
所述执行定时操作包括,
步骤G1:判断系统状态标识是否为蓝牙OTP标识;
是则蓝牙模式计数器计数值加1,执行步骤G2;否则,执行步骤G7;
步骤G2:判断蓝牙模式计数器计数值是否小于第一预设值;
是则执行步骤G5;否则,执行步骤G3;
步骤G3:判断主动选择蓝牙标识是否置位;是则执行步骤G4;否则,蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,然后执骤G7;
步骤G4:将蓝牙模式计数器计数值置为0,对蓝牙模块下电,将蓝牙OTP允许按键输入标识置位,然后执行步骤G7;
步骤G5:检测蓝牙模块工作电压是否低于预设电压,若低于预设电压,则执行步骤G6;若不低于预设电压,则执行步骤G7;
步骤G6:蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,通过液晶显示屏输出工作电压低请充电后再使用蓝牙功能的提示信息,执行步骤G7;
步骤G7:判断系统状态标识是否为等待标识;
是则执行步骤G8;否则;执行步骤G9;
步骤G8:显示时间条,执行步骤G9;
步骤G9:判断系统状态标识是否为输入挑战码标识;
是则执行步骤G10;否则,定时操作结束;
步骤G10:无按键计数器计数值加1;
步骤G11:判断无按键计数器计数值是否小于第二预设值;
是则执行步骤G13;否则,执行步骤G12;
步骤G12:将无按键计数器计数值置为0,将系统状态标识保存为关机标识,定时操作结束;
步骤G13:判断是否有按键被按下;
如果有按键被按下,则执行步骤G14;否则,执行步骤G17;
步骤G14:按键按下计数器计数值加1,将按键松开计数器计数值置为0;
步骤G15:判断按键按下计数器计数值是否大于第三预设值;
是则执行步骤G16;否则,定时操作结束;
步骤G16:将按键按下计数器计数值置为0,关闭按键中断,定时操作结束;
步骤G17:按键松开计数器计数值加1,按键按下计数器计数值置为0,然后执行步骤G18;
步骤G18:判断按键松开计数器计数值是否大于第四预设值;
是则执行步骤G19;否则,定时操作结束;
步骤G19:将按键松开计数器计数值置为0,打开按键中断,定时操作结束。
所述步骤S-5之前还包括,
步骤F1:检测收到的按键消息,如是删除键,则执行步骤F2;如果是数字键,则执行步骤F8;如果是OK键,则执行步骤S8;如果是其他键值则根据键值执行相应操作,退出蓝牙OTP操作;
步骤F2:判断删除键被按下的时间是否达到预设时长;
是则执行步骤F3;否则,执行步骤F4;
步骤F3:显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,退出蓝牙OTP操作;
步骤F4:判断蓝牙数据接收完成标识是否置位;
是则退出蓝牙OTP操作;否则,执行步骤F5;
步骤F5:判断蓝牙OTP允许按键输入标识是否置位;
是则执行步骤F6;否则,退出蓝牙OTP操作;
步骤F6:判断按键数据长度是否等于0;
是则退出蓝牙OTP操作;否则,执行步骤F7;
步骤F7:按键数据长度减1,清除按键数据缓存区中最后存入的键值,显示按键数据缓存区中的数据,然后退出蓝牙OTP操作;
步骤F8:判断是否同时满足蓝牙OTP允许按键输入标识置位和按键数据长度小于预设长度;
如果是,则执行步骤F9;否则,退出蓝牙OTP操作;
步骤F9:按键数据长度加1,将相应的键值保存到按键数据缓存区,显示相应键值,然后退出蓝牙OTP操作。
所述根据收到的按键消息获取对应的动态因子具体为:
所述令牌判断按键数据长度是否等于0,是则获取令牌内部的时间因子或事件因子作为动态因子;否则获取按键数据缓存区中的数据,并将其作为动态因子;
所述判断按键数据长度是否等于0的判断结果为否时,还包括,获取令牌内部的时间因子和/或事件因子,将时间因子和/或事件因子与所述按键数据缓存区中的数据的组合作为动态因子;
当动态因子包括事件因子时,计算动态口令后,所述更新动态因子具体为,事件因子加1;
当动态因子包括按键数据缓存区中的数据时,计算动态口令后,清空所述按键数据缓存区。
所述将计算得到的动态口令返回给上位机具体为,通过液晶屏显示所述动态口令和/或通过蓝牙通道将所述动态口令返回给上位机。
所述步骤S-5中根据收到的按键消息获取对应的动态因子之前还包括,
判断蓝牙OTP允许按键输入标识是否置位,是则继续执行;否则将按键唤醒标识复位,返回步骤S1。
本发明的有益效果是,上位机通过蓝牙将需要用户输入到令牌的数据发送给令牌,在保证动态口令安全性的前提下,又省略了用户输入的步骤,避免了需要用户输入大量信息时容易出错、耗费时间的问题。
附图说明
图1-1和图1-2为本发明实施例1提供的一种动态令牌的工作方法流程图;
图2为本发明实施例2提供的一种动态令牌的工作方法流程图;
图3为本发明实施例1中提供的一种蓝牙OTP操作方法的细化流程图;
图4为本发明实施例1中提供的一种挑战应答操作方法的细化流程图;
图5为本发明实施例1中提供的一种菜单功能选择操作方法的细化流程图。
具体实施方式
实施例1
参见图1-1和图1-2,本发明实施例1提供了一种动态令牌的工作方法,具体包括以下步骤:
步骤100:令牌初始化;
本实施例中,初始化MCU(Microprogrammed Control Unit,微控制单元),将堆栈指针指向堆栈起始地址,初始化RAM存储器(RandomAccess Memory,随机存储器),并将全局变量清零,将所有的唤醒标识复位,将系统状态标识置为关机标识,打开按键中断和/或蓝牙数据中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断,将所有的中断标识复位,令牌休眠,执行步骤101。
步骤101:等待接收中断触发信号,判断是否收到中断触发信号;
如果是,则进行相应中断处理,令牌被唤醒,执行步骤102;否则,返回步骤101;
本实施例中,中断触发信号包括:按键中断触发信号、定时器中断触发信号、蓝牙数据中断触发信号、蓝牙连接中断触发信号、蓝牙断开中断触发信号。
当令牌收到按键中断触发信号时,进入按键中断处理,具体操作包括步骤b1至步骤b4,
步骤b1:判断按键中断标识是否置位,如果是,则执行步骤b2;否则,退出按键中断处理;
步骤b2:判断是否存在按键被按下,如果是,则执行步骤b3;否则,执行步骤b4;本步骤还可以加入延时消抖处理。
步骤b3:将按键唤醒标识置位;
步骤b4:将按键中断标识复位,退出按键中断处理。
当令牌收到定时器中断触发信号时,进入定时器中断处理,具体操作包括步骤c1至步骤c6,
步骤c1:判断定时器中断标识是否置位,如果是,则执行步骤c2;否则,退出定时器中断处理;
步骤c2:秒计数器计数值加1,检测秒计数器计数值,如果秒计数器计数值等于第一时间间隔,则秒计数器计数值清零,时间因子加1,事件因子清零,校准计数器计数值加1,执行步骤c3;如果秒计数器计数值等于第二时间间隔并且校准计数器计数值大于等于校准值,则将校准计数器计数值减去校准值的结果保存为新的校准计数器计数值,执行步骤c4;否则,执行步骤c5;
步骤c3:判断系统状态标识是否为等待标识,如果是则关闭LCD(Liquid Crystal Display,液晶显示屏),系统状态标识保存为关机标识,执行步骤c5;否则,返回步骤c2;
步骤c4:判断校准方向标识是否置位,如果置位,则秒计数器计数值减1,执行步骤c5;否则,秒计数器计数值加1,执行步骤c5;其中,校准方向标识置位或复位是由出厂前设置。
步骤c5:将定时器唤醒标识置位,将定时器中断标识复位,退出定时器中断处理。
当令牌收到蓝牙数据中断触发信号时,进入蓝牙数据中断处理,具体操作包括步骤d1至d2,
步骤d1:判断蓝牙数据中断标识是否置位,如果是,则执行步骤d2;否则,退出蓝牙数据中断处理;
步骤d2:将蓝牙数据唤醒标识置位,将蓝牙数据中断标识复位,退出蓝牙数据中断处理。
当令牌收到蓝牙连接中断触发信号时,进入蓝牙连接中断处理,具体操作包括,
将蓝牙连接唤醒标识置位,将蓝牙连接中断标识复位,退出蓝牙连接中断处理;
当令牌收到蓝牙断开中断触发信号时,进入蓝牙断开中断处理,具体操作包括,
将蓝牙断开唤醒标识置位,将蓝牙断开中断标识复位,退出蓝牙断开中断处理。
步骤102:判断是否存在置位的唤醒标识;
如果存在,则执行步骤103;否则,令牌休眠,然后返回步骤101。
步骤103:判断置位的唤醒标识类型;
如是按键唤醒标识,则执行步骤104-113;
如是定时器唤醒标识,则执行步骤114-133;
如是蓝牙数据唤醒标识,则执行步骤134-138;
如是蓝牙连接唤醒标识,则执行步骤139-141;
如是蓝牙断开唤醒标识,则执行步骤142-144;
步骤104:关闭按键中断,扫描按键并获取键值;
步骤105:判断键值是否不为空;
如果是,则执行步骤106;否则,执行步骤113;
步骤106:将无按键计数器计数值置为0;
步骤107:判断被按下的按键是否为电源键;
如果是,则执行步骤109;否则,执行步骤108;
步骤108:检测系统状态标识;
如果是蓝牙OTP标识,则进行蓝牙OTP操作后,执行步骤113;如果是输入挑战码标识,则进行挑战应答操作后,执行步骤113;如果是菜单功能选择标识,则进行菜单功能选择操作后,执行步骤113;如果是其他标识,则进行相应操作后,执行步骤113。
本实施例中,其他标识包括检查密码标识。
如果是检查密码标识,则进行检查密码操作;检查密码操作包括,
步骤E1:检测键值,如果是OK键,则执行步骤E2;若是其他键值,则根据键值执行相应操作,然后退出检查密码操作。
若其他键值为数字键并且输入的数字长度小于预设长度,则将输入的数字作为按键数据保存至按键数据缓存区,显示检查密码界面,然后退出检查密码操作;
步骤E2:判断密码是否正确,若密码正确,则执行步骤E3;否则,执行步骤E7;
步骤E3:提示密码正确,将密码失败次数清零,延时第四预设时间;
步骤E4:检测蓝牙模块工作电压是否不低于预设工作电压,若低于预设工作电压,则执行步骤E5;若不低于预设工作电压,则执行步骤E6;
步骤E5:提示蓝牙模块工作电压低,请充电,工作电压低状态超过第一预设时间后,系统状态标识保存为输入挑战码标识,清空按键数据缓存区,退出检查密码操作;
步骤E6:给蓝牙模块上电,显示蓝牙OTP界面,蓝牙模式计数器计数值置为0,系统状态标识保存为蓝牙OTP标识,蓝牙连接中断标识复位,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识复位,清空按键数据缓存区,将蓝牙模块切换至监听模式,退出检查密码操作。
步骤E7:密码失败次数加1,显示密码失败界面,延时第四预设时间;
步骤E8:判断密码失败次数是否等于预设次数;
如果是,则清空按键数据缓存区,显示令牌被锁定,退出检查密码操作;否则,显示密码输入界面,清空按键数据缓存区,退出检查密码操作。其中,令牌被锁定可以在第五预设时间后自动解锁,也可以通过柜台解锁。
进行蓝牙OTP操作如图3所示,具体包括步骤F1至步骤F15,
步骤F1:检测键值,如果是删除键,则执行步骤F2;如果是数字键,则执行步骤F8;如果是OK键,则执行步骤F10;如果是其他键值则根据键值执行相应操作,退出蓝牙OTP操作;其他键值包括左键和右键;
步骤F2:判断删除键被按下的时间是否达到预设时长;
如果是,则执行步骤F3;否则,执行步骤F4;
步骤F3:显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,退出蓝牙OTP操作;
步骤F4:判断蓝牙数据接收完成标识是否置位;
如果是,退出蓝牙OTP操作;否则,执行步骤F5;
步骤F5:判断蓝牙OTP允许按键输入标识是否置位;
如果是,则执行步骤F6;否则,退出蓝牙OTP操作;
步骤F6:判断按键数据长度是否等于0;
如果是,则退出蓝牙OTP操作;否则,执行步骤F7;
步骤F7:按键数据长度减1,清空按键数据缓存区中最后存入的按键数据,显示按键数据缓存区中的数据,然后退出蓝牙OTP操作;
步骤F8:判断是否符合蓝牙OTP允许按键输入标识置位和按键数据长度小于预设长度;
如果符合,则执行步骤F9;否则,退出蓝牙OTP操作;
步骤F9:按键数据长度加1,将键值对应的输入数字作为按键数据存入按键数据缓存区,显示按键数据缓存区的数据,然后退出蓝牙OTP操作;
步骤F10:判断蓝牙数据接收完成标识是否置位;
如果是,则执行步骤F11;否则,执行步骤F12;
步骤F11:将接收数据缓存区中的数据作为挑战值,根据挑战值计算挑战应答型动态口令,显示挑战应答型动态口令,将系统状态标识保存为等待标识,清空接收数据缓存区,退出蓝牙OTP操作;其中,将接收数据缓存区中的数据作为挑战值还包括,将时间因子和/或事件因子与接收数据缓存区中数据的组合作为挑战值,当挑战值中包含事件因子时,计算挑战应答型动态口令后还包括,事件因子加1;接收数据缓存区中的数据可以是随机数,也可以是账号金额等交易信息;本步骤也可以通过蓝牙通道向上位机发送挑战应答型动态口令;
步骤F12:判断蓝牙OTP允许按键输入标识是否置位;
如果置位,则执行步骤F13;否则,退出蓝牙OTP操作;
步骤F13:判断按键数据长度是否等于0;
如果是,则执行步骤F14;否则,执行步骤F15;
步骤F14:根据令牌内部的时间因子计算时间型动态口令,显示时间型动态口令,系统状态标识保存为等待标识,然后退出蓝牙OTP操作;
本步骤还可以为,根据事件因子计算事件型动态口令,事件因子加1,显示事件型动态口令,系统状态标识保存为等待标识;
本步骤也可以通过蓝牙通道向上位机发送时间型动态口令(事件型动态口令);
步骤F15:将按键数据缓存区中的数据作为挑战值,根据挑战值计算挑战应答型动态口令,显示挑战应答型动态口令,系统状态标识保存为等待标识,清空按键数据缓存区,然后退出蓝牙OTP操作。其中,将按键数据缓存区中的数据作为挑战值还包括,将时间因子和/或事件因子与按键数据缓存区中的数据的组合作为挑战值,当挑战值中包含事件因子时,计算挑战应答型动态口令后还包括,事件因子加1;
本步骤也可以通过蓝牙通道向上位机发送挑战应答型动态口令。
进行挑战应答操作参见图4,具体包括步骤A1至步骤A13,
步骤A1:检测键值,如果是删除键,则执行步骤A2;如果是数字键,则执行步骤A9;如果是OK键,则执行步骤A11;如是其他键值,则根据键值执行相应操作,退出挑战应答操作;
步骤A2:判断删除键被按下的时间是否达到预设时长;
是则执行步骤A3;否则,执行步骤A6;
步骤A3:判断按键数据长度是否等于0;
如果等于0,则执行步骤A4;否则,执行步骤A5;
步骤A4:显示菜单界面,将系统状态标识保存为菜单功能选择标识,然后退出挑战应答操作;
步骤A5:清空按键数据缓存区,显示输入挑战码信息界面,将按键数据长度置为0,然后退出挑战应答操作;
步骤A6:判断按键数据长度是否等于0;
如果等于0,则执行步骤A8;否则,执行步骤A7;
步骤A7:按键数据长度减1,清除按键数据缓存区中最后存入的按键数据;然后执行步骤A8;
步骤A8:显示输入挑战码信息界面,显示按键数据缓存区中的数据,然后,退出挑战应答操作;
步骤A9:判断按键数据长度是否小于预设长度;
是则执行步骤A10;否则,执行退出挑战应答操作;
步骤A10:将相应键值对应的输入数字作为按键数据保存至按键数据缓存区,按键数据长度加1,然后退出挑战应答操作;
步骤A11:判断按键数据长度是否等于0;
是则执行步骤A12;否则,执行步骤A13;
步骤A12:根据令牌内部的时间因子计算时间型动态口令,显示时间型动态口令,系统状态标识保存为等待标识;
本步骤还可以为,根据令牌内部的事件因子计算事件型动态口令,事件因子加1,显示事件型动态口令,系统状态标识保存为等待标识;
本步骤也可以通过蓝牙通道向上位机发送时间型动态口令(事件型动态口令);
步骤A13:将按键数据缓存区中的数据作为挑战值,根据挑战值计算挑战应答型动态口令,显示挑战应答型动态口令,系统状态标识保存为等待标识,清空按键数据缓存区,然后,退出挑战应答操作。其中,将按键数据缓存区中的数据作为挑战值还包括,将时间因子和/或事件因子与按键数据缓存区中的数据的组合作为挑战值,当挑战值中包含事件因子时,计算挑战应答型动态口令后还包括,事件因子加1。
菜单功能选择操作如图5所示,具体包括步骤H1至步骤H9,
步骤H1:检测键值,如果是OK键,则执行步骤H2;
如果其他键值,则根据键值执行相应操作,退出菜单功能选择操作,其他键值包括右键和左键。
步骤H2:判断选择的功能,如果是蓝牙OTP,则执行步骤H3;
如果是其他的功能,则执行相应功能选择操作,然后退出菜单功能选择操作。
步骤H3:蓝牙模块上电,显示蓝牙OTP界面,系统状态标识保存为蓝牙OTP标识,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识置位,执行步骤H4;
步骤H4:读取蓝牙模块参数;
蓝牙模块参数包括,设备名称,密码等信息。
步骤H5:判断读取蓝牙模块参数是否成功;
如果读取成功,则执行步骤H6;否则执行步骤H7;
步骤H6:蓝牙模块切换为监听模式,退出菜单功能选择操作;
步骤H7:读取蓝牙模块参数次数加1;
步骤H8:判断读取蓝牙模块参数次数是否达到第六预设值;
如果是,则执行步骤H9;否则,返回步骤H4;
步骤H9:提示蓝牙模块损坏,给蓝牙模块下电,延时第三预设时间,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,退出菜单功能选择操作。
步骤109:判断电源键被按下的时间是否达到预设时长;
如果是,则执行步骤110;否则,执行步骤113。
步骤110:判断系统状态标识是否为关机标识;
如果是,则执行步骤112;否则,执行步骤111;
步骤111:系统状态标识保存为关机标识,清空按键数据缓存区,关闭LCD,对蓝牙模块下电,执行步骤113;
步骤112:打开LCD, LCD上电初始化;
本步骤进行开机操作,设置系统状态标识为检查密码标识。
本步骤中还包括判断令牌是否被锁定,如果被锁定,则提示用户去柜台解锁或者等待密码被自动解锁,否则继续执行。
步骤113:将按键唤醒标识复位,打开按键中断,然后返回步骤102;
步骤114:判断系统状态标识是否为蓝牙OTP标识;
如果是,则蓝牙模式计数器计数值加1,执行步骤115;否则,执行步骤120。
步骤115:判断蓝牙模式计数器计数值是否大于等于第一预设值;
如果是,则执行步骤116;否则,执行步骤118;
步骤116:判断主动选择蓝牙标识是否置位;如果是,则执行步骤117;否则,蓝牙模式计数器计数值置为0,给蓝牙模块下电,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,然后执行步骤120;
步骤117:蓝牙模式计数器计数值置为0,给蓝牙模块下电,将蓝牙OTP允许按键输入标识置位,然后执行步骤120;
步骤118:检测蓝牙模块工作电压是否不低于预设电压,若不低于预设电压,则执行步骤120;若低于预设电压,则执行步骤119。
步骤119:蓝牙模式计数器计数值置为0,给蓝牙模块下电,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,提示蓝牙模块工作电压低,请充电后使用蓝牙功能,执行步骤120。
步骤120:判断系统状态标识是否为等待标识;
如果是,则执行步骤121;否则;执行步骤122。
步骤121:显示时间条;
步骤122:判断系统状态标识是否为输入挑战码标识;
如果是,则执行步骤123;否则,执行步骤133;
步骤123:无按键计数器计数值加1;
步骤124:判断无按键计数器计数值是否大于等于第二预设值;
如果是,则执行步骤125;否则,执行步骤126;
步骤125:无按键计数器计数值置为0,系统状态标识保存为关机标识,然后执行步骤133;
步骤126:判断是否有按键被按下;
如果有按键被按下,则执行步骤127;否则,执行步骤130;
步骤127:按键按下计数器计数值加1,按键松开计数器计数值置为0;
步骤128:判断按键按下计数器计数值是否大于第三预设值;
如果是,则执行步骤129;否则,执行步骤133;
其中,第三预设值优选为10。
步骤129:按键按下计数器计数值置为0,关闭按键中断,执行步骤133;
步骤130:按键松开计数器计数值加1,按键按下计数器计数值置为0,然后执行步骤131。
步骤131:判断按键松开计数器计数值是否大于第四预设值;
如果是,则执行步骤132;否则,执行步骤133;
其中,第四预设值优选为4。
步骤132:按键松开计数器计数值置为0,打开按键中断,执行步骤133;
步骤133:定时器唤醒标识复位,然后返回步骤102;
步骤134:接收蓝牙数据,判断蓝牙数据是否接收完成;
如果接收完成,则执行步骤135;否则,执行步骤138;
本实施例中,以字节的形式接收蓝牙数据,接收的字节中包含蓝牙数据的长度信息,根据该长度信息接收数据,当接收的字节长度值等于长度信息时,则蓝牙数据接收完成。
步骤135:判断收到的蓝牙数据是否合法;
如果合法,则执行步骤136;否则,执行步骤137;
本实施例中,获取收到的数据中的校验字节,对该数据中除去校验字节以外的部分进行异或运算,得到的运算结果与校验字节进行比较,如果匹配,则收到的数据合法,否则不合法。
步骤136:蓝牙数据接收完成标识置位,将接收到的蓝牙数据保存至接收数据缓存区,执行步骤138;
步骤137:清空接收数据缓存区,然后执行步骤138;
步骤138:蓝牙数据唤醒标识复位,然后返回步骤102。
步骤139:判断系统状态标识是否是蓝牙OTP标识;
如果是,则执行步骤140;否则,执行步骤141。
步骤140:显示蓝牙已连接,延时第四预设时间后清屏;
步骤141:将蓝牙连接唤醒标识复位,然后返回步骤102;
步骤142:判断系统状态标识是否是蓝牙OTP标识;
如果是,则执行步骤143;否则,执行步骤144;
步骤143:显示蓝牙连接已断开,清空接收数据缓存区,蓝牙数据接收完成标识复位,然后执行步骤144;
步骤144:蓝牙断开唤醒标识复位,然后返回步骤102。
实施例2
参见图2,本发明实施例2提供了一种动态令牌的工作方法,具体包括以下步骤:
步骤200:令牌初始化;
本实施例中,初始化MCU(Microprogrammed Control Unit,微控制单元),堆栈指针指向堆栈起始地址,初始化RAM存储器(Random Access Memory,随机存储器),并将全局变量清零,将所有的中断标识复位,打开按键中断和/或定时器中断和/或蓝牙数据中断和/或蓝牙连接中断和/或蓝牙断开中断,令牌休眠,执行步骤201。
步骤201:等待接收中断触发信号,判断是否收到中断触发信号;
如果是,则令牌被唤醒,执行步骤202;否则返回步骤201。
本实施例中,中断触发信号包括,按键中断触发信号、定时器中断触发信号、蓝牙数据中断触发信号、蓝牙连接中断触发信号、蓝牙断开中断触发信号。
步骤202:判断中断触发信号的类型;
如是按键中断触发信号,则执行步骤203;
如是定时器中断触发信号,则执行步骤217;
如是蓝牙数据中断触发信号,则执行步骤228;
如是蓝牙连接中断触发信号,则执行步骤234;
如是蓝牙断开中断触发信号,则执行步骤237。
步骤203:判断按键中断标识是否置位;
如果是,则执行步骤204;否则,执行步骤216。
步骤204:判断是否存在按键被按下;
如果是,则执行步骤205;否则,执行步骤215;
本步骤还可以加入延时消抖处理。
步骤205:关闭按键中断,扫描按键并获取键值,执行步骤206;
步骤206:判断键值是否不为空;
如果是,则执行步骤207;否则,执行步骤214;
步骤207:无按键计数器计数值置为0,执行步骤208;
步骤208:判断被按下的按键是否为电源键;
如果是,则执行步骤210;否则,执行步骤209。
步骤209:检测系统状态标识;
如果是蓝牙OTP标识,则执行蓝牙OTP操作后,然后执行步骤214;如果是输入挑战码标识,则执行挑战应答操作后,执行步骤214;如果是菜单功能选择标识,则执行菜单功能选择操作后,执行步骤214;如果是其他标识,则执行相应操作后,执行步骤214。其他标识,包括检查密码标识;如是检查密码标识,则执行检查密码操作;具体的操作同实施例1中所述的方法相同。
本实施例中,蓝牙OTP操作的方法与实施例1中所述的蓝牙OTP操作的方法相同;执行挑战应答操作的方法与实施例1中所述的执行挑战应答操作的方法相同;执行菜单功能选择操作的方法与实施例1中所述的执行菜单功能选择操作的方法相同,不再赘述。
步骤210:判断电源键被按下的时间是否达到预设时长;
如果是,则执行步骤211;否则,执行步骤214。
步骤211:判断系统状态标识是否为关机标识;
如果是,则执行步骤213;否则,执行步骤212;
步骤212:系统状态标识保存为关机标识,清空按键数据缓存区,关闭LCD,对蓝牙模块下电,执行步骤214;
步骤213:打开LCD,对LCD上电初始化,执行步骤214;
本步骤进行开机操作,设置系统状态标识为检查密码标识,本步骤还包括判断令牌是否被锁定,是则显示令牌被锁定,提示用户去柜台解锁或者等待自动解锁。
步骤214:打开按键中断;
步骤215:将按键中断标识复位;
步骤216:令牌休眠,然后返回步骤201;
步骤217:判断定时器中断标识是否置位;
如果置位,则执行步骤218;否则,返回步骤216。
步骤218:秒计数器计数值加1,检测秒计数器计数值,如果等于第一时间间隔,则执行步骤219;如果等于第二时间间隔并且校准计数器计数值大于等于校准值,则执行步骤223;如果为其他值则执行步骤222;
步骤219:秒计数器计数值清零,时间因子加1,事件因子清零,校准计数器计数值加1,执行步骤220;
步骤220:判断系统状态标识是否为等待标识;
如果是,则执行步骤221;否则,返回步骤218;
步骤221:关闭LCD,将系统状态标识保存为关机标识,执行步骤222;
步骤222:执行定时操作,然后执行步骤227;
本实施例中,执行定时操作,具体包括,
步骤k1:判断系统状态标识是否为蓝牙OTP标识,是则将蓝牙模式计数器计数值加1,执行步骤k2;否则,执行步骤k3;
步骤k2:判断蓝牙模式计数器计数值是否大于等于第一预设值,如果大于等于第一预设值,则检测主动选择蓝牙标识是否置位,若置位,则蓝牙模式计数器计数值置为0,对蓝牙模块下电,将蓝牙OTP允许按键输入标识置位,然后执行K3;若主动选择蓝牙标识未置位,则蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,然后执行步骤k3;若不大于等于第一预设值,则检测蓝牙模块工作电压是否不低于预设电压,若不低于预设电压,则执行步骤k3;若低于预设电压,则蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,通过液晶显示屏输出工作电压低请充电后再使用蓝牙功能的提示信息,然后执行步骤K3。
步骤k3:判断系统状态标识是否为等待标识,是则显示时间条,执行步骤k4;否则;执行步骤k4;
步骤k4:判断系统状态标识是否为输入挑战码标识;
是则无按键计数器计数值加1,然后执行步骤K5;否则,执行步骤k9;
步骤k5:判断无按键计数器计数值是否大于等于第二预设值;
是则将无按键计数器计数值置为0,系统状态标识保存为关机标识,执行步骤K9;否则,执行步骤K6。
步骤K6:判断是否有按键被按下;
如果有按键被按下,则按键按下计数器计数值加1,按键松开计数器计数值置为0,然后执行步骤K8;否则,按键松开计数器计数值加1,按键按下计数器计数值置为0,然后执行步骤K7。
步骤K7:判断按键松开计数器计数值是否大于第四预设值;
是则按键松开计数器计数值置为0,打开按键中断,执行步骤K9;否则,执行步骤K9;
其中,第四预设值优选为4。
步骤K8:判断按键按下计数器计数值是否大于第三预设值;
是则将按键按下计数器计数值置为0,关闭按键中断,执行步骤K9;否则,执行步骤K9;
其中,第三预设值优选为10。
步骤K9:定时器中断标识复位,令牌休眠,然后返回步骤201。
步骤223:计算新的校准计数器计数值;
本实施例中,将校准计数器计数值减去校准值的结果作为新的校准计数器计数值。
步骤224:判断校准方向标识是否置位;
本实施例中,校准方向标识置位或复位是由出厂前设置。
如果是,则执行步骤225;否则,执行步骤226;
步骤225:秒计数器计数值减1,返回步骤222;
步骤226:秒计数器计数值加1,返回步骤222;
步骤227:将定时器中断标识复位,返回步骤216;
步骤228:判断蓝牙数据中断标识是否置位;
如果置位,则执行步骤229,否则,返回步骤216。
步骤229:接收蓝牙数据,判断蓝牙数据是否接收完成;
如果是,则执行步骤230;否则,执行步骤233。
本实施例中,以字节的形式接收蓝牙数据,接收的字节中包含蓝牙数据的长度信息,根据该长度信息接收数据,当接收的字节长度等于长度信息时,则蓝牙数据接收完成。
步骤230:判断收到的数据是否合法;
如果合法,则执行步骤231;否则,执行步骤232;
步骤231:蓝牙数据接收完成标识置位,将接收到的数据保存至接收数据缓存区,执行步骤233;
步骤232:清空接收数据缓存区,执行步骤233;
步骤233:将蓝牙数据中断标识复位,返回步骤216;
步骤234:判断系统状态标识是否是蓝牙OTP标识;
如果是,则执行步骤235;否则,返回步骤236。
步骤235:显示蓝牙已连接,延时第四预设时间后清屏;
步骤236:蓝牙连接中断标识复位,返回步骤216;
步骤237:判断系统状态标识是否是蓝牙OTP标识;
如果是,则执行步骤238;否则,执行步骤239;
步骤238:显示蓝牙连接已断开,清空接收数据缓存区,蓝牙数据接收完成标识复位;
步骤239:蓝牙断开中断标识复位,返回步骤216。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (29)

1.一种动态令牌的工作方法,其特征在于,包括,
当有按键被按下时,将按键唤醒标识置位;当通过蓝牙通道收到蓝牙数据时,将蓝牙数据唤醒标识置位;当通过蓝牙与上位机建立连接时,将蓝牙连接唤醒标识置位;当蓝牙与上位机断开连接时,将蓝牙断开唤醒标识置位;
步骤S1:判断是否存在置位的唤醒标识;是则执行步骤S2;否则,令牌休眠;
步骤S2:判断置位的唤醒标识的类型;如是按键唤醒标识,则执行步骤S3;如是蓝牙数据唤醒标识,则执行步骤S9;如是蓝牙连接唤醒标识,则第四预设时间后清屏,将蓝牙连接唤醒标识复位,返回步骤S1;如是蓝牙断开唤醒标识,则清空接收数据缓存区,将蓝牙断开唤醒标识复位,返回步骤S1;
步骤S3:接收按键信息判断按键类型,如果是电源键,则执行步骤S4;如果是其他键值,则执行步骤S5;
步骤S4:判断系统状态标识是否是关机标识,是则对液晶屏上电初始化,将系统状态标识保存为检查密码标识,将按键唤醒标识复位,返回步骤S1;否则对蓝牙模块下电,将按键唤醒标识复位,返回步骤S1;
步骤S5:检测系统状态标识,如果是检查密码标识,则执行步骤S6;如果是挑战应答标识,则执行步骤S7;如果是蓝牙OTP标识,则执行步骤S8;如果是其他标识则根据标识执行相应操作,返回步骤S1;
步骤S6:进行检查密码操作,当密码正确时,判断蓝牙模块工作电压是否低于预设电压,是则提示蓝牙模块工作电压低,工作电压低状态达到第一预设时间后,将系统状态标识保存为输入挑战码标识,将按键唤醒标识复位,返回步骤S1;否则,对蓝牙模块上电,将系统状态标识保存为蓝牙OTP标识,将蓝牙模块切换至监听模式,将按键唤醒标识复位,返回步骤S1;当密码不正确时,将按键唤醒标识复位,显示令牌被锁定,退出检查密码操作,返回步骤S1;
步骤S7:根据收到的按键信息获取对应的动态因子,根据所述动态因子计算动态口令,更新动态因子,将计算得到的动态口令返回给上位机,将按键唤醒标识复位,返回步骤S1;
步骤S8:判断蓝牙数据接收完成标识是否置位,是则读取接收数据缓存区中的数据,将其作为动态因子,根据所述动态因子计算动态口令,将计算得到的动态口令返回给上位机,清空接收数据缓存区,将按键唤醒标识复位,返回步骤S1;否则,根据收到的按键信息获取对应的动态因子,根据所述动态因子计算动态口令,将计算得到的动态口令返回给上位机,将按键唤醒标识复位,返回步骤S1;
步骤S9:接收蓝牙数据,将所述蓝牙数据保存至接收数据缓存区,将蓝牙数据接收完成标识置位,将所述蓝牙数据唤醒标识复位,返回步骤S1。
2.如权利要求1所述的方法,其特征在于,
所述步骤S1之前还包括,令牌初始化微控制单元,初始化随机存储器,并将全局变量清零,将所有的唤醒标识复位,将系统状态标识保存为关机标识,打开按键中断和/或蓝牙数据中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断,然后令牌休眠。
3.如权利要求1所述的方法,其特征在于,
所述步骤S6中所述检查密码操作具体包括,
步骤E1:检测键值,若是OK键,则执行步骤E2;若是数字键并且按键数据长度小于预设长度,则将数字键对应的按键数据保存至按键数据缓存区,显示检查密码界面,退出检查密码操作;若是其他键值则根据键值执行相应操作,退出检查密码操作;
步骤E2:判断按键数据缓存区中的密码是否正确,若密码正确,则执行步骤E3;否则,执行步骤E4;
步骤E3:提示密码正确,将密码失败次数清零,延时第四预设时间,清空按键数据缓存区,确定密码正确,退出检查密码操作;
步骤E4:密码失败次数加1,显示密码失败界面,延时第四预设时间,执行步骤E5;
步骤E5:判断密码失败次数是否等于预设次数;
是则清空按键数据缓存区,确定密码不正确,退出检查密码操作;否则,显示密码输入界面,清空按键数据缓存区,退出检查密码操作。
4.如权利要求3所述的方法,其特征在于,
所述步骤S6中对蓝牙模块上电与蓝牙模块切换至监听模式之间还包括,显示蓝牙OTP界面,蓝牙模式计数器计数值置为0,蓝牙连接中断标识复位,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识复位,清空按键数据缓存区。
5.如权利要求4所述的方法,其特征在于,
所述步骤S7还包括,根据收到的按键信息判断按键类型,如是OK键则执行步骤S7;如是数字键并且按键数据长度小于预设长度,则将数字键对应的按键数据保存至按键数据缓存区,将按键数据长度加1;如是删除键则执行步骤A1;
步骤A1:判断删除键被按下的时间是否达到预设时长;
是则执行步骤A2;否则,执行步骤A5;
步骤A2:判断按键数据长度是否等于0;
如果等于0,则执行步骤A3;否则,执行步骤A4;
步骤A3:显示菜单界面,将系统状态标识保存为菜单功能选择标识,然后退出挑战应答操作;
步骤A4:清空按键数据缓存区,显示输入挑战码信息界面,将按键数据长度置为0,然后退出挑战应答操作;
步骤A5:判断按键数据长度是否等于0;
如果等于0,则执行步骤A7;否则,执行步骤A6;
步骤A6:按键数据长度减1,清除按键数据缓存区中最后存入键值;然后执行步骤A7;
步骤A7:显示输入挑战码信息界面,显示按键数据缓存区中的数据,然后,退出挑战应答操作。
6.如权利要求5所述的方法,其特征在于,所述步骤S5中其他标识还包括菜单功能选择标识,如是菜单功能选择标识,则进行菜单功能选择操作包括,
步骤H1:检测键值,如果是OK键,则执行步骤H2;
如果其他键值,则根据键值执行相应操作,退出菜单功能选择操作,其他键值包括右键和左键;
步骤H2:判断选择的功能,如果是蓝牙OTP,则执行步骤H3;
如果是其他的功能,则执行相应功能选择操作,然后退出菜单功能选择操作;
步骤H3:蓝牙模块上电,显示蓝牙OTP界面,系统状态标识保存为蓝牙OTP标识,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识置位,执行步骤H4;
步骤H4:读取蓝牙模块参数;
步骤H5:判断读取蓝牙模块参数是否成功;
如果读取成功,则执行步骤H6;否则执行步骤H7;
步骤H6:蓝牙模块切换为监听模式,退出菜单功能选择操作;
步骤H7:读取蓝牙模块参数次数加1;
步骤H8:判断读取蓝牙模块参数次数是否达到第六预设值;
如果是,则执行步骤H9;否则,返回步骤H4;
步骤H9:提示蓝牙模块损坏,给蓝牙模块下电,延时第三预设时间,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,退出菜单功能选择操作。
7.如权利要求6所述的方法,其特征在于,所述步骤S8之前还包括,
步骤F1:根据收到的按键消息判断按键类型,如是删除键,则执行步骤F2;如果是数字键,则执行步骤F8;如果是OK键,则执行步骤S8;如果是其他按键则根据按键类型执行相应操作,退出蓝牙OTP操作;
步骤F2:判断删除键被按下的时间是否达到预设时长;
是则执行步骤F3;否则,执行步骤F4;
步骤F3:显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,退出蓝牙OTP操作;
步骤F4:判断蓝牙数据接收完成标识是否置位;
是则退出蓝牙OTP操作;否则,执行步骤F5;
步骤F5:判断蓝牙OTP允许按键输入标识是否置位;
是则执行步骤F6;否则,退出蓝牙OTP操作;
步骤F6:判断按键数据长度是否等于0;
是则退出蓝牙OTP操作;否则,执行步骤F7;
步骤F7:按键数据长度减1,清除按键数据缓存区中最后存入的键值,显示按键数据缓存区中的数据,然后退出蓝牙OTP操作;
步骤F8:判断是否同时满足蓝牙OTP允许按键输入标识置位和按键数据长度小于预设长度;
如果是,则执行步骤F9;否则,退出蓝牙OTP操作;
步骤F9:按键数据长度加1,将相应的键值保存到按键数据缓存区,显示相应键值,然后退出蓝牙OTP操作。
8.如权利要求5或7所述的方法,其特征在于,
所述根据收到的按键消息获取对应的动态因子具体为:
所述令牌判断按键数据长度是否等于0,是则获取令牌内部的时间因子或事件因子作为动态因子;否则获取按键数据缓存区中的数据,并将其作为动态因子。
9.如权利要求8所述的方法,其特征在于,
所述判断按键数据长度是否等于0的判断结果为否时,还包括,获取令牌内部的时间因子和/或事件因子,将时间因子和/或事件因子与所述按键数据缓存区中的数据的组合作为动态因子;
当动态因子包括事件因子时,计算动态口令后,所述更新动态因子具体为,事件因子加1;
当动态因子包括按键数据缓存区中的数据时,计算动态口令后,清空所述按键数据缓存区。
10.如权利要求6所述的方法,其特征在于,所述步骤S8中根据收到的按键消息获取对应的动态因子之前还包括,
判断蓝牙OTP允许按键输入标识是否置位,是则继续执行;否则将按键唤醒标识复位,返回步骤S1。
11.如权利要求1所述的方法,其特征在于,所述将计算得到的动态口令返回给上位机具体为,通过液晶屏显示所述动态口令和/或通过蓝牙通道将所述动态口令返回给上位机。
12.如权利要求6所述的方法,其特征在于,所述将计算得到的动态口令返回给上位机之后还包括,将系统状态标识保存为等待标识。
13.如权利要求12所述的方法,其特征在于,所述步骤S3中接收按键消息之后还包括,判断键值是否为空,是则将无按键计数器计数值置为0,判断键值类型,然后继续执行;否则,将按键唤醒标识复位,返回步骤S1。
14.如权利要求13所述的方法,其特征在于,当检测到定时器中断时执行定时器中断操作,具体包括,
步骤c1:秒计数器计数值加1,检测秒计数器计数值,如果秒计数器计数值等于第一时间间隔,则秒计数器计数值清零,时间因子加1,事件因子清零,校准计数器计数值加1,执行步骤c3;如果秒计数器计数值等于第二时间间隔并且校准计数器计数值大于等于校准值,则将校准计数器计数值减去校准值的结果保存为新的校准计数器计数值,执行步骤c4;否则,将定时器唤醒标识置位;
步骤c3:判断系统状态标识是否为等待标识,如果是则关闭液晶显示屏,系统状态标识保存为关机标识,将定时器唤醒标识置位;否则,返回步骤c2;
步骤c4:判断校准方向标识是否置位,如果置位,则秒计数器计数值减1,将定时器唤醒标识置位;否则,秒计数器计数值加1,将定时器唤醒标识置位;其中,校准方向标识置位或复位是由出厂前设置。
15.如权利要求14所述的方法,其特征在于,所述步骤S2中如是定时器唤醒标识时,执行操作包括,
步骤G1:判断系统状态标识是否为蓝牙OTP标识;
是则蓝牙模式计数器计数值加1,执行步骤G2;否则,执行步骤G7;
步骤G2:判断蓝牙模式计数器计数值是否小于第一预设值;
是则执行步骤G5;否则,执行步骤G3;
步骤G3:判断主动选择蓝牙标识是否置位;是则执行步骤G4;否则,蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,然后执骤G7;
步骤G4:将蓝牙模式计数器计数值置为0,对蓝牙模块下电,将蓝牙OTP允许按键输入标识置位,然后执行步骤G7;
步骤G5:检测蓝牙模块工作电压是否低于预设电压,若低于预设电压,则执行步骤G6;若不低于预设电压,则执行步骤G7;
步骤G6:蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,通过液晶显示屏输出工作电压低请充电后再使用蓝牙功能的提示信息,执行步骤G7;
步骤G7:判断系统状态标识是否为等待标识;
是则执行步骤G8;否则;执行步骤G9;
步骤G8:显示时间条,执行步骤G9;
步骤G9:判断系统状态标识是否为输入挑战码标识;
是则执行步骤G10;否则,执行步骤G20;
步骤G10:无按键计数器计数值加1;
步骤G11:判断无按键计数器计数值是否小于第二预设值;
是则执行步骤G13;否则,执行步骤G12;
步骤G12:将无按键计数器计数值置为0,将系统状态标识保存为关机标识,然后执行步骤G20;
步骤G13:判断是否有按键被按下;
如果有按键被按下,则执行步骤G14;否则,执行步骤G17;
步骤G14:按键按下计数器计数值加1,将按键松开计数器计数值置为0;
步骤G15:判断按键按下计数器计数值是否大于第三预设值;
是则执行步骤G16;否则,执行步骤G20;
步骤G16:将按键按下计数器计数值置为0,关闭按键中断,执行步骤G20;
步骤G17:按键松开计数器计数值加1,按键按下计数器计数值置为0,然后执行步骤G18;
步骤G18:判断按键松开计数器计数值是否大于第四预设值;
是则执行步骤G19;否则,执行步骤G20;
步骤G19:将按键松开计数器计数值置为0,打开按键中断,执行步骤G20;
步骤G20:将定时器唤醒标识复位。
16.一种动态令牌的工作方法,其特征在于,包括,
令牌初始化,打开按键中断和/或蓝牙数据中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断,令牌休眠;
当令牌检测到按键中断时,令牌被唤醒,执行步骤S-1;
步骤S-1:判断被按下的按键是否为电源键,是则,执行步骤S-2;若被按下的不是电源键,则检测系统状态标识,如果是检查密码标识则执行步骤S-3;如果是输入挑战码标识,则执行步骤S-4;如果是蓝牙OTP标识,则执行步骤S-5;
步骤S-2:判断系统状态标识是否为关机标识,是则,对液晶显示屏上电初始化,将系统状态标识保存为检查密码标识,将按键中断标识复位,令牌休眠;否则,系统状态标识保存为关机标识,对蓝牙模块下电,将按键中断标识复位,令牌休眠;
步骤S-3:进行检查密码操作,当密码正确时,判断蓝牙模块工作电压是否低于预设电压,是则提示蓝牙模块工作电压低,工作电压低状态达到第一预设时间后,将系统状态标识保存为输入挑战码标识,将按键中断标识复位,令牌休眠;否则,对蓝牙模块上电,将系统状态标识保存为蓝牙OTP标识,将蓝牙模块切换至监听模式,将按键中断标识复位,令牌休眠;当密码不正确时,显示令牌被锁定,将按键中断标识复位,令牌休眠;
步骤S-4:根据键值获取动态因子,根据所述动态因子计算动态口令,更新动态因子,将计算得到的动态口令返回给上位机,将按键中断标识复位,令牌休眠;
步骤S-5:判断蓝牙数据接收完成标识是否置位,是则读取接收数据缓存区中的数据,将其作为动态因子,根据所述动态因子计算动态口令,将计算得到的动态口令返回给上位机,将按键中断标识复位,令牌休眠;否则,根据键值获取对应的动态因子,根据所述动态因子计算动态口令,更新动态因子,将计算得到的动态口令返回给上位机,将按键中断标识复位,令牌休眠;
当令牌检测到蓝牙数据中断时,接收蓝牙数据,将所述蓝牙数据保存至接收数据缓存区,将蓝牙数据接收完成标识置位,将所述蓝牙数据中断标识复位,然后令牌休眠;
当令牌检测到蓝牙连接中断时,显示蓝牙已连接,预设时间后清屏,将蓝牙连接中断标识复位,然后令牌休眠;
当令牌检测到蓝牙断开中断时,清空接收数据缓存区,将蓝牙断开中断标识复位,令牌休眠。
17.如权利要求16所述的方法,其特征在于,所述令牌初始化具体为,
令牌初始化微控制单元,初始化随机存储器,并将全局变量清零,将所有的中断标识复位,将系统状态标识保存为关机标识。
18.如权利要求16所述的方法,其特征在于,所述步骤S-3中的所述检查密码操作具体包括,
步骤E-1:检测键值,若是OK键,则执行步骤E-2;若是数字键并且按键数据长度小于预设长度,则将相应的键值保存至按键数据缓存区,显示检查密码界面,退出检查密码操作;若是其他键值则根据键值执行相应操作,退出检查密码操作;
步骤E-2:判断按键数据缓存区中的密码是否正确,若密码正确,则执行步骤E-3;否则,执行步骤E-4;
步骤E-3:提示密码正确,将密码失败次数清零,延时第四预设时间,清空按键数据缓存区,确定密码正确,退出检查密码操作;
步骤E-4:密码失败次数加1,显示密码失败界面,延时第四预设时间,执行步骤E-5;
步骤E-5:判断密码失败次数是否等于预设次数;
是则清空按键数据缓存区,确定密码不正确,退出检查密码操作;否则,显示密码输入界面,清空按键数据缓存区,退出检查密码操作。
19.如权利要求18所述的方法,其特征在于,
所述步骤S-3中对蓝牙模块上电与蓝牙模块切换至监听模式之间还包括,显示蓝牙OTP界面,蓝牙模式计数器计数值置为0,蓝牙连接中断标识复位,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识复位,清空按键数据缓存区。
20.如权利要求19所述的方法,其特征在于,
所述步骤S-4还包括,检测收到的按键消息,如是OK键则执行步骤S7;如是数字键并且按键数据长度小于预设长度,则将相应的键值保存至按键数据缓存区,将按键数据长度加1;如是删除键则执行步骤A1;
步骤A1:判断删除键被按下的时间是否达到预设时长;
是则执行步骤A2;否则,执行步骤A5;
步骤A2:判断按键数据长度是否等于0;
如果等于0,则执行步骤A3;否则,执行步骤A4;
步骤A3:显示菜单界面,将系统状态标识保存为菜单功能选择标识,然后退出挑战应答操作;
步骤A4:清空按键数据缓存区,显示输入挑战码信息界面,将按键数据长度置为0,然后退出挑战应答操作;
步骤A5:判断按键数据长度是否等于0;
如果等于0,则执行步骤A7;否则,执行步骤A6;
步骤A6:按键数据长度减1,清除按键数据缓存区中最后存入键值;然后执行步骤A7;
步骤A7:显示输入挑战码信息界面,显示按键数据缓存区中的数据,然后,退出挑战应答操作。
21.如权利要求20所述的方法,其特征在于,
所述步骤S-2中其他标识还包括,菜单功能选择标识,当系统状态标识是菜单功能选择标识时,则进行菜单功能选择操作,包括,
步骤H1:检索键值,如果是OK键,则执行步骤H2;
如果其他键值,则根据键值执行相应操作,退出菜单功能选择操作,其他键值包括右键和左键;
步骤H2:判断选择的功能,如果是蓝牙OTP,则执行步骤H3;
如果是其他的功能,则执行相应功能选择操作,然后退出菜单功能选择操作;
步骤H3:蓝牙模块上电,显示蓝牙OTP界面,系统状态标识保存为蓝牙OTP标识,蓝牙OTP允许按键输入标识复位,主动选择蓝牙标识置位,执行步骤H4;
步骤H4:读取蓝牙模块参数;
步骤H5:判断读取蓝牙模块参数是否成功;
如果读取成功,则执行步骤H6;否则执行步骤H7;
步骤H6:蓝牙模块切换为监听模式,退出菜单功能选择操作;
步骤H7:读取蓝牙模块参数次数加1;
步骤H8:判断读取蓝牙模块参数次数是否达到第六预设值;
如果是,则执行步骤H9;否则,返回步骤H4;
步骤H9:提示蓝牙模块损坏,给蓝牙模块下电,延时第三预设时间,显示输入挑战码信息界面,系统状态标识保存为输入挑战码标识,退出菜单功能选择操作。
22.如权利要求21所述的方法,其特征在于,所述将计算得到的动态口令返回给上位机之后还包括,将系统状态标识保存为等待标识。
23.如权利要求22所述的方法,其特征在于,所述步骤S3中接收按键消息之后还包括,判断键值是否为空,是则将无按键计数器计数值置为0,判断键值类型,然后继续执行;否则,将按键唤醒标识复位,返回步骤S1。
24.如权利要求23所述的方法,其特征在于,当检测到定时器中断时执行定时器中断操作,具体包括,
步骤c-1:秒计数器计数值加1,检测秒计数器计数值,如果秒计数器计数值等于第一时间间隔,则执行步骤c-2;如果秒计数器计数值等于第二时间间隔并且校准计数器计数值大于等于校准值,则执行步骤c-4;如果为其他值,则执行定时操作,将定时器中断标识复位,令牌休眠;
步骤c-2:秒计数器计数值清零,时间因子加1,事件因子清零,校准计数器计数值加1,执行步骤c-3;
步骤c-3:判断系统状态标识是否为等待标识,是则关闭液晶显示屏,系统状态标识保存为关机标识,执行定时操作,将定时器中断标识复位,令牌休眠;否则,返回步骤c-1;
步骤c-4:将校准计数器计数值减去校准值的结果保存为新的校准计数器计数值;判断校准方向标识是否置位,是则秒计数器计数值减1,执行定时操作,将定时器中断标识复位,令牌休眠;否则,秒计数器计数值加1,执行定时操作,将定时器中断标识复位;其中,校准方向标识置位或复位是由出厂前设置。
25.如权利要求24所述的方法,其特征在于,所述执行定时操作包括,
步骤G1:判断系统状态标识是否为蓝牙OTP标识;
是则蓝牙模式计数器计数值加1,执行步骤G2;否则,执行步骤G7;
步骤G2:判断蓝牙模式计数器计数值是否小于第一预设值;
是则执行步骤G5;否则,执行步骤G3;
步骤G3:判断主动选择蓝牙标识是否置位;是则执行步骤G4;否则,蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,然后执骤G7;
步骤G4:将蓝牙模式计数器计数值置为0,对蓝牙模块下电,将蓝牙OTP允许按键输入标识置位,然后执行步骤G7;
步骤G5:检测蓝牙模块工作电压是否低于预设电压,若低于预设电压,则执行步骤G6;若不低于预设电压,则执行步骤G7;
步骤G6:蓝牙模式计数器计数值置为0,对蓝牙模块下电,显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,通过液晶显示屏输出工作电压低请充电后再使用蓝牙功能的提示信息,执行步骤G7;
步骤G7:判断系统状态标识是否为等待标识;
是则执行步骤G8;否则;执行步骤G9;
步骤G8:显示时间条,执行步骤G9;
步骤G9:判断系统状态标识是否为输入挑战码标识;
是则执行步骤G10;否则,定时操作结束;
步骤G10:无按键计数器计数值加1;
步骤G11:判断无按键计数器计数值是否小于第二预设值;
是则执行步骤G13;否则,执行步骤G12;
步骤G12:将无按键计数器计数值置为0,将系统状态标识保存为关机标识,定时操作结束;
步骤G13:判断是否有按键被按下;
如果有按键被按下,则执行步骤G14;否则,执行步骤G17;
步骤G14:按键按下计数器计数值加1,将按键松开计数器计数值置为0;
步骤G15:判断按键按下计数器计数值是否大于第三预设值;
是则执行步骤G16;否则,定时操作结束;
步骤G16:将按键按下计数器计数值置为0,关闭按键中断,定时操作结束;
步骤G17:按键松开计数器计数值加1,按键按下计数器计数值置为0,然后执行步骤G18;
步骤G18:判断按键松开计数器计数值是否大于第四预设值;
是则执行步骤G19;否则,定时操作结束;
步骤G19:将按键松开计数器计数值置为0,打开按键中断,定时操作结束。
26.如权利要求21所述的方法,其特征在于,所述步骤S-5之前还包括,
步骤F1:检测收到的按键消息,如是删除键,则执行步骤F2;如果是数字键,则执行步骤F8;如果是OK键,则执行步骤S8;如果是其他键值则根据键值执行相应操作,退出蓝牙OTP操作;
步骤F2:判断删除键被按下的时间是否达到预设时长;
是则执行步骤F3;否则,执行步骤F4;
步骤F3:显示输入挑战码信息界面,将系统状态标识保存为输入挑战码标识,退出蓝牙OTP操作;
步骤F4:判断蓝牙数据接收完成标识是否置位;
是则退出蓝牙OTP操作;否则,执行步骤F5;
步骤F5:判断蓝牙OTP允许按键输入标识是否置位;
是则执行步骤F6;否则,退出蓝牙OTP操作;
步骤F6:判断按键数据长度是否等于0;
是则退出蓝牙OTP操作;否则,执行步骤F7;
步骤F7:按键数据长度减1,清除按键数据缓存区中最后存入的键值,显示按键数据缓存区中的数据,然后退出蓝牙OTP操作;
步骤F8:判断是否同时满足蓝牙OTP允许按键输入标识置位和按键数据长度小于预设长度;
如果是,则执行步骤F9;否则,退出蓝牙OTP操作;
步骤F9:按键数据长度加1,将相应的键值保存到按键数据缓存区,显示相应键值,然后退出蓝牙OTP操作。
27.如权利要求20或26所述的方法,其特征在于,
所述根据收到的按键消息获取对应的动态因子具体为:
所述令牌判断按键数据长度是否等于0,是则获取令牌内部的时间因子或事件因子作为动态因子;否则获取按键数据缓存区中的数据,并将其作为动态因子;
所述判断按键数据长度是否等于0的判断结果为否时,还包括,获取令牌内部的时间因子和/或事件因子,将时间因子和/或事件因子与所述按键数据缓存区中的数据的组合作为动态因子;
当动态因子包括事件因子时,计算动态口令后,所述更新动态因子具体为,事件因子加1;
当动态因子包括按键数据缓存区中的数据时,计算动态口令后,清空所述按键数据缓存区。
28.如权利要求16所述的方法,其特征在于,所述将计算得到的动态口令返回给上位机具体为,通过液晶屏显示所述动态口令和/或通过蓝牙通道将所述动态口令返回给上位机。
29.如权利要求25所述的方法,其特征在于,所述步骤S-5中根据收到的按键消息获取对应的动态因子之前还包括,
判断蓝牙OTP允许按键输入标识是否置位,是则继续执行;否则将按键唤醒标识复位,返回步骤S1。
CN2013101798705A 2013-05-15 2013-05-15 一种动态令牌的工作方法 Pending CN103312508A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2013101798705A CN103312508A (zh) 2013-05-15 2013-05-15 一种动态令牌的工作方法
CN201310404877.2A CN103457741B (zh) 2013-05-15 2013-09-09 一种动态令牌的工作方法
US14/777,768 US9781104B2 (en) 2013-05-15 2014-03-18 Working method of dynamic token
PCT/CN2014/073602 WO2014183500A1 (zh) 2013-05-15 2014-03-18 一种动态令牌的工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013101798705A CN103312508A (zh) 2013-05-15 2013-05-15 一种动态令牌的工作方法

Publications (1)

Publication Number Publication Date
CN103312508A true CN103312508A (zh) 2013-09-18

Family

ID=49137315

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2013101798705A Pending CN103312508A (zh) 2013-05-15 2013-05-15 一种动态令牌的工作方法
CN201310404877.2A Active CN103457741B (zh) 2013-05-15 2013-09-09 一种动态令牌的工作方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201310404877.2A Active CN103457741B (zh) 2013-05-15 2013-09-09 一种动态令牌的工作方法

Country Status (3)

Country Link
US (1) US9781104B2 (zh)
CN (2) CN103312508A (zh)
WO (1) WO2014183500A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014183500A1 (zh) * 2013-05-15 2014-11-20 飞天诚信科技股份有限公司 一种动态令牌的工作方法
CN110557725A (zh) * 2019-09-16 2019-12-10 飞天诚信科技股份有限公司 一种设置蓝牙工作状态的方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2812541T3 (es) * 2013-12-30 2021-03-17 Onespan Int Gmbh Aparato de autenticación con interfaz Bluetooth
CN111159655B (zh) * 2019-12-31 2023-06-27 深圳市显控科技股份有限公司 人机交互多级密码设置方法
CN114980363B (zh) * 2022-07-27 2024-03-19 荣耀终端有限公司 一种蓝牙回连方法及其相关装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7540022B2 (en) * 2005-06-30 2009-05-26 Nokia Corporation Using one-time passwords with single sign-on authentication
CN101022292A (zh) * 2006-02-14 2007-08-22 南京大学 便携式蓝牙求救装置
CN101197665B (zh) * 2007-12-24 2011-11-09 北京飞天诚信科技有限公司 动态口令生成方法及其装置
US8726371B2 (en) * 2011-07-18 2014-05-13 Cisco Technology, Inc. Enhanced security for devices enabled for wireless communications
CN102611556B (zh) * 2012-03-31 2014-10-29 飞天诚信科技股份有限公司 一种动态令牌的工作方法
CN103023643A (zh) * 2012-11-22 2013-04-03 天地融科技股份有限公司 一种动态口令牌及动态口令生成方法
US20140380445A1 (en) * 2013-03-17 2014-12-25 David Tunnell Universal Authentication and Data Exchange Method, System and Service
CN103312508A (zh) * 2013-05-15 2013-09-18 飞天诚信科技股份有限公司 一种动态令牌的工作方法
US20160164725A1 (en) * 2014-12-08 2016-06-09 Cyntec Co., Ltd. Wireless System Package and Communication Method of Wireless System Package and Communication Device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014183500A1 (zh) * 2013-05-15 2014-11-20 飞天诚信科技股份有限公司 一种动态令牌的工作方法
US9781104B2 (en) 2013-05-15 2017-10-03 Feitian Technologies Co., Ltd. Working method of dynamic token
CN110557725A (zh) * 2019-09-16 2019-12-10 飞天诚信科技股份有限公司 一种设置蓝牙工作状态的方法及装置
CN110557725B (zh) * 2019-09-16 2021-07-30 飞天诚信科技股份有限公司 一种设置蓝牙工作状态的方法及装置

Also Published As

Publication number Publication date
CN103457741B (zh) 2016-08-17
WO2014183500A1 (zh) 2014-11-20
US20160301687A1 (en) 2016-10-13
CN103457741A (zh) 2013-12-18
US9781104B2 (en) 2017-10-03

Similar Documents

Publication Publication Date Title
US11216549B2 (en) Security verification method and device
US9350728B2 (en) Method and system for generating and authorizing dynamic password
CN103312508A (zh) 一种动态令牌的工作方法
CN104765466B (zh) 移动终端的按键控制方法及装置
CN102801531B (zh) 一种基于声音传输的动态令牌的工作方法
US9817961B2 (en) Working method of smart key device
CN109738719B (zh) 静电释放esd检测方法及相关产品
CN102945652A (zh) 一种解决显示屏显示异常的方法及系统
CN104427081A (zh) 一种移动终端的解锁方法及装置
CN105450405A (zh) 一种密码设置和认证方法及系统
WO2017032127A1 (zh) 一种图案解锁的方法及终端
CN103312517A (zh) 一种双用途设备共用显示屏和按键的实现方法
CN103209077B (zh) 一种适用于动态令牌的解锁方法
CN106485117A (zh) 一种基于人脸识别的智能终端操作控制方法及系统
CN101645124A (zh) 一种解锁pin码的方法和智能密钥设备
CN104796877B (zh) 一种防恶意扣费的方法和装置
CN105589546A (zh) 一种信息检测方法及装置
CN105069332A (zh) 基于指纹的密码验证方法和密码验证装置
CN105099709A (zh) 一种智能密钥设备及其工作方法和工作装置
CN105407221A (zh) 使用自拍杆时的防误触方法和系统
CN105988806A (zh) 一种释放缓存的方法及移动终端
CN103558977A (zh) 防止误锁屏的方法和装置
CN100409138C (zh) 密码验证装置及验证方法
CN104320254A (zh) 一种支持扩展接口的智能密钥设备的工作方法
CN101639883B (zh) 一种校验pin码的方法和智能密钥设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130918