CN104022873B - 一种离线动态验证码生成方法 - Google Patents

一种离线动态验证码生成方法 Download PDF

Info

Publication number
CN104022873B
CN104022873B CN201310064407.6A CN201310064407A CN104022873B CN 104022873 B CN104022873 B CN 104022873B CN 201310064407 A CN201310064407 A CN 201310064407A CN 104022873 B CN104022873 B CN 104022873B
Authority
CN
China
Prior art keywords
variable
string
verified
value
summation
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.)
Expired - Fee Related
Application number
CN201310064407.6A
Other languages
English (en)
Other versions
CN104022873A (zh
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.)
NANJING WANGHE INTELLIGENT TECHNOLOGY CO., LTD.
Original Assignee
Beijing Wang He Time Technology 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 Beijing Wang He Time Technology Co Ltd filed Critical Beijing Wang He Time Technology Co Ltd
Priority to CN201310064407.6A priority Critical patent/CN104022873B/zh
Publication of CN104022873A publication Critical patent/CN104022873A/zh
Application granted granted Critical
Publication of CN104022873B publication Critical patent/CN104022873B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种离线动态验证码的生成方法,涉及信息安全认证领域。所述方法包含步骤:获取待验证端的ID码和待验证端的系统时间;对获取的待验证端的系统时间进行预处理,实现设定时间间隔内动态码验证码的自动更换功能;将获取的待验证端的ID码数字串与预处理后的系统时间数字串求和;计算求和后所得数字串的下标变量i;根据下标变量i截取求和后所得数字串的子数字串,此截取的子数字串即为动态验证码。本发明解决用户在支付或者其它身份验证活动时由于终端网络不可接入等原因造成的不便,使得在离线状态下即可完成支付等需要身份认证功能的移动业务,并且能够提高账户的安全。

Description

一种离线动态验证码生成方法
技术领域
本发明涉及信息安全认证领域,特别是涉及一种离线动态验证码的生成方法。
背景技术
动态验证码是按照某种算法生成的一个数字序列,由于是按照一定的时间段实时生成动态变化的,并且超过一定时间就失效,所以称之为动态验证码。其广泛应用,可以应用于信息安全认证领域,如订单支付、银行帐号安全保护等。
针对用户越来越重视的安全问题,各大公司企业都推出了自己的解决方案。
例如:某些银行推出了动态验证码,是用于保护网银用户的账户安全的一种技术措施。银行通过提供给网银用户一个便携式终端系统,按照规定的规则产生验证码并与网银服务器端的数据进行核对,以保护网银用户的账号安全。这种提供的便携式终端系统虽是小巧,但会产生多余的系统费用,且之在使用时过程中容易遗失、丢弃,这也就为后续使用带来不便。
目前手机作为普及的通讯系统,把手机与便携式终端系统合二为一,以此作为待验证端不用携带其它的终端系统,能为验证码的认证带来方便;但在采用通常的手机短信验证码方式时,手机在无网络可接入的情况下是难以完成动态码的接收、输入、身份验证的。因此迫切的需要有一种方法能够适应有网络和无网络等情况,使得支付更方便,更安全,用户使用更满意。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是:解决用户在支付或者其它身份验证活动时由于待验证端网络不可接入等原因造成的不便,使得待验证端在离线状态下生成动态验证码实现身份验证,即可完成支付等活动,并且能够提高账户的安全。
(二)技术方案
为了解决上述问题,本发明提供了一种离线动态验证码的生成方法,终端软件在待验证端通过动态验证码生成方法生成动态的验证码,通过BS端交由Webservice服务器验证,在验证通过后即可进行交易或者帐号登录,这便完成动态验证码的作用。图1为动态验证码的一种应用场景。
所述离线动态验证码的生成方法是一种数字序列生成方法,生成的数字位数为可按照实际需要设定,如可设定为8位,更新间隔可按照实际需要设定,如可设定为30s。
具体包括以下步骤:
A、获取待验证端的ID码和待验证端的系统时间;
B、对步骤A中获取的待验证端的系统时间进行预处理,实现设定时间间隔内动态码验证码的自动更换功能;
C、将步骤A获取的待验证端的ID码数字串与步骤B中预处理后的系统时间数字串求和;
D、计算步骤C中求和后所得数字串的下标变量i;
E、根据步骤D中下标变量i截取步骤C中求和后所得数字串的子数字串,此截取的子数字串即为动态验证码。
其中步骤A中具体包含以下步骤:
A1、获取所述待验证端的ID码,存储到变量k中;获取所述待验证端的系统时间,存储到变量t中;
A2、当步骤A1中存储到变量k中的ID码的数字串位数﹥14时,从后向前截取n位数字串,n≤14,将这n位数字串再次存储到变量k中;
A3、将步骤A1中存储到变量t中的系统时间的数字串从后向前截取n位数字串,n≤14,将这n位数字串存储到变量t1中。
其中步骤B中具体包含以下步骤:
B1、截取变量t1中所存储的系统时间数字串的最后两位值,将此值存储到变量temp中;将变量temp与30比较,判断的结果存储到变量flag中,大于或等于30时变量flag的值为真,小于30时变量flag的值为假;
B2、取步骤B1的变量flag,当flag值为真时,将变量temp值重置为30;当flag值为假时,将变量temp值重置为00;
B3、截取变量t1中的前n-2位数字串,将此值存储到变量temp1中,将步骤B2中重置后temp中的两位数字串置于temp1后,得到n位的数字串;将此n位数字串存储到变量t2中。
其中步骤C中具体包含以下步骤:
C1、将变量k和t2中的数字串分别从最低位依次取对应的每位数值,然后求和,若求和结果大于9则置变量carryflag为真,小于或等于9时则置变量carryflag为假;并将当前位的数值置为每位求和结果的个位数;
C2、按照步骤C1对应位求和并且每位求和前都判断carryflag是否为真,若为真则在当前位取和时加1,最高位求和进位不考虑;将数字串K和T2的求和值置于变量s中。
其中步骤D中具体包含以下步骤:
D1、截取变量s中n位数字串中的最后m位数字,分别存储到变量s1、s2到sm中,m≤n;
D2、将步骤D1中的m位变量s1、s2到sm求和;
D3、截取步骤D2中的求和值的个位数值,将其存储于下标变量i中。
其中步骤E中具体包含以下步骤:
E1、对变量s中的数字串从左到右数到下标变量i位,即从第i位开始截取子数字串;
E2、在从变量s中自第i位开始截取子数字串时,若到串尾,不够子数字串的位数时,则循环回串首继续截取。
此刻截取到的子数字串即为动态验证码。
(三)有益效果
本发明动态验证码的生成方法并不十分复杂,但破解难度较高,安全性高;并且待验证端上安装终端软件后,以此作为便携移动终端系统,使用时根据待验证端ID码和系统时间就可产生动态验证码,在待验证端有信号或无信号离线状态照样使用。将产生的验证码手动输入到BS端,待同webservice服务器验证,匹配的话即验证通过,这样很大程度上给用户的支付或者其它身份验证活动时提供方便。
附图说明
图1为动态验证码的一种应用场景;
图2为离线动态验证码的生成方法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例适于说明本发明,但不用来限制本发明的范围。
本实施例以手机端为待验证端,需获取的ID码为手机号码
图2是离线动态验证码的生成方法流程图,如图2所示,所述方法包括如下步骤:
步骤S100:获取待验证端的ID码和待验证端的系统时间。
此种生成验证码的方法是基于待验证端的手机号码和系统时间这两个数字序列。
获取待验证端的手机号码,存储到变量k中。
如ID码数字串多于14位,因为时间的数字串只有14位,此时对n的取值需要≤14方可。此时就需要分别对变量k和t中的字符串进行截取n位,将这n位数字串存储到变量k和t1中。
如ID码数字串少于14位,n值可以为此ID码数字串的位数,此时值只需要对系统时间进行截取n位。
例如手机号码为12345678901,因为手机号码是11位的数字串,此时n的取值可为11,即变量k中存储的为11位数字串;
获取待验证端的系统时间,存储到变量t中,例如时间为2012年11月10日11点23分12秒,则系统时间的原始数字序列为20121110112312的14位数字串;
终端软件默认的系统时间为标准时间,以此和BS服务器端时间相一致。
由于n取值为11,设定将系统时间数字串从后向前截取11位,此刻截取后的时间数字串为21110112312,这个即是t1的值;
步骤S200:对步骤S100获取的待验证端的系统时间进行预处理,实现设定时间间隔内动态码验证码的自动更换功能;。
获得手机号码和系统时间这两项本算法的输入数据后,需要进行系统时间预处理,以此来实现给定时间间隔内动态码的自动更换功能;
该动态码的自动更换的时间间隔可依据实际应用在30-60秒之间动态设定,本实施例的自动更换时间间隔为30秒。
判断系统时间数字串的秒数值:
取出之前存储的时间串t,判断其秒数值,即最后两位的值12,将此值取出存为另一变量temp,将其与30比较,判断出的结果大于、等于或小于存储到变量flag中,大于或等于时flag的值为真,小于时flag的值为假;
重置系统时间数字串的秒数值:
取出变量flag,若flag是真,即秒数值大于等于30,则置秒数值为30;若flag为假,即秒数值小于30,则置秒数值为00;此例中置位后的秒数值为00;
获取新的系统时间数字串:
在判断时间串秒数值后,重新组装系统时间串。此过程需要以下几步:
从时间串t中截取除两位秒数值外的n-2位即9位字符串211101123,将此值存储到变量temp1中;
将重置后temp中的两位数字串置于temp1后面,即得21110112300;
将调整后的系统时间21110112300存储到t2中。
步骤S300:将步骤S100中获取的待验证端的手机号码数字串与步骤S200中调整后的系统时间数字求和。
将变量k和t2中的数字串分别从最低位依次取对应的每位数值,然后求和,若求和结果大于9则置变量carryflag为真,小于或等于9时则置变量carryflag为假;并将当前位的数值置为每位求和结果的个位数。
按照步骤S300对应位求和并且每位求和前都判断carryflag是否为真,若为真则在当前位取和时加1,最高位求和进位不考虑;将数字串k和t2的求和值置于变量s中;此时便得到手机号码和系统时间的求和值s,即33455791201;
步骤S400:计算截取步骤S300中求和后所得数字串s的下标变量i。
由于生成的子数字串位数为可按照实际需要在1-n之间设定,此处为1-11之间设定,如本实施例可设定为8位,故需要对11位的s数字串进行截取,i即为截取的子字符串在s串中的开始下标;
取出之前存储到s中的求和值33455791201,从最低位开始依次取后m位,分别存到m个变量中,通常只要满足m≤n即可,此处优选m=4,即选择后四位,分别为是s1为1,s2为2,s3为0,s4为1;
将所取的四个位数求和,本实施例中即和为4;
对上一步求和的结果截取个位数,此例为4,存储为变量i中;
步骤S500:截取子数字串,获得验证码的步骤;
本实施例截取的子数字串优选为8位。
在获得求和值S和截取下标i后,即可进行字串截取;
以i为下标,从左往右数到第i位,从第i位开始截取8位;
在截取时若到串尾,则循环回串首继续。对本例S33455791201截取,i为4,即从第4位开始截取,截取结果为55791201。
在完成以上的步骤后,便达到了该算法的目的,获得验证码55791201。
此验证码不依赖于待验证端的网络情况,如此按以上五个步骤执行后,所得的动态验证码便是可离线产生的动态验证码。
以上实施方式仅适于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (2)

1.一种离线动态验证码的生成方法,其特征在于,包括以下步骤:
A、获取待验证端的ID码和待验证端的系统时间;
B、对步骤A中获取的待验证端的系统时间进行预处理,实现设定时间间隔内动态码验证码的自动更换功能;
C、将步骤A获取的待验证端的ID码数字串与步骤B中预处理后的系统时间数字串求和;
D、计算步骤C中求和后所得数字串的下标变量i;
E、根据步骤D中下标变量i截取步骤C中求和后所得数字串的子数字串,此截取的子数字串即为动态验证码;
其中,所述步骤A中具体包括以下步骤:
A1、获取所述待验证端的ID码,存储到变量k中;获取所述待验证端的系统时间,存储到变量t中;
A2、当步骤A1中存储到变量k中的ID码的数字串位数﹥14时,从后向前截取n位数字串,n≤14,将这n位数字串再次存储到变量k中;
A3、将步骤A1中存储到变量t中的系统时间的数字串从后向前截取n位数字串,n≤14,将这n位数字串存储到变量t1中;
所述步骤B中具体包括以下步骤:
B1、截取变量t1中所存储的系统时间数字串的最后两位值,将此值存储到变量temp中;将变量temp与30比较,判断的结果存储到变量flag中,大于或等于30时变量flag的值为真,小于30时变量flag的值为假;
B2、取步骤B1的变量flag,当flag值为真时,将变量temp值重置为30;当flag值为假时,将变量temp值重置为00;
B3、截取变量t1中的前n-2位数字串,将此值存储到变量temp1中,将步骤B2中重置后temp中的两位数字串置于temp1后,得到n位的数字串;将此n位数字串存储到变量t2中;
所述步骤C中具体包括以下步骤:
C1、将变量k和t2中的数字串分别从最低位依次取对应的每位数值,然后求和,若求和结果大于9则置变量carryflag为真,小于或等于9时则置变量carryflag为假;并将对应的求和位的数值置为每位求和结果的个位数;
C2、按照步骤C1对应位求和并且每位求和前都判断carryflag是否为真,若为真则在对应的求和位取和时加1,最高位求和进位不考虑;将变量k和t2的数字串的求和值置于变量s中;
所述步骤D中具体包括以下步骤:
D1、截取变量s中n位数字串中的最后m位数字,分别存储到变量s1、s2到sm中,m≤n;
D2、将步骤D1中的m位变量s1、s2到sm求和;
D3、截取步骤D2中的求和值的个位数值,将其存储于下标变量i中。
2.如权利要求1所述的方法,其特征在于,所述步骤E中具体包含以下步骤:
E1、对变量s中的数字串从左到右数到下标变量i位,即从第i位开始截取子数字串;
E2、在从变量s中自第i位开始截取子数字串时,若到串尾,不够子数字串位数时,则循环回串首继续截取。
CN201310064407.6A 2013-02-28 2013-02-28 一种离线动态验证码生成方法 Expired - Fee Related CN104022873B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310064407.6A CN104022873B (zh) 2013-02-28 2013-02-28 一种离线动态验证码生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310064407.6A CN104022873B (zh) 2013-02-28 2013-02-28 一种离线动态验证码生成方法

Publications (2)

Publication Number Publication Date
CN104022873A CN104022873A (zh) 2014-09-03
CN104022873B true CN104022873B (zh) 2017-09-29

Family

ID=51439459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310064407.6A Expired - Fee Related CN104022873B (zh) 2013-02-28 2013-02-28 一种离线动态验证码生成方法

Country Status (1)

Country Link
CN (1) CN104022873B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615712A (zh) * 2015-02-05 2015-05-13 厦门雅迅网络股份有限公司 一种快速判断环卫排班任务中的时间是否冲突的方法
CN106898064A (zh) 2017-01-09 2017-06-27 云丁网络技术(北京)有限公司 一种基于智能门锁系统的离线验证码的生成方法及其系统
US11527120B2 (en) 2017-01-09 2022-12-13 Yunding Network Technology (Beijing) Co., Ltd. Methods and systems for offline verification code generation based on smart door lock system
CN108805558A (zh) * 2018-06-14 2018-11-13 王�华 一种离线支付方法及离线支付系统
CN109167666A (zh) * 2018-08-31 2019-01-08 深圳众赢维融科技有限公司 验证码生成、解密、移动支付方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937498A (zh) * 2006-10-09 2007-03-28 网之易信息技术(北京)有限公司 一种动态密码认证方法、系统及装置
CN102497374A (zh) * 2011-12-13 2012-06-13 方正国际软件有限公司 基于云计算可离线的软件许可集中安全认证系统及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1849119B1 (en) * 2005-02-18 2019-07-10 EMC Corporation Derivative seeds

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937498A (zh) * 2006-10-09 2007-03-28 网之易信息技术(北京)有限公司 一种动态密码认证方法、系统及装置
CN102497374A (zh) * 2011-12-13 2012-06-13 方正国际软件有限公司 基于云计算可离线的软件许可集中安全认证系统及其方法

Also Published As

Publication number Publication date
CN104022873A (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
CN1323538C (zh) 一种动态身份认证方法和系统
CN104022873B (zh) 一种离线动态验证码生成方法
EP1829281B1 (en) Authentication device and/or method
CN101496344B (zh) 网上银钱支付和身份确认的带自设认证算式的方法和系统
CN101414909B (zh) 网络应用用户身份验证系统、方法和移动通信终端
CN104022877B (zh) 用于认证电子交易的系统和方法
CN108989346B (zh) 基于账号隐匿的第三方有效身份托管敏捷认证访问方法
CN104011760B (zh) 用于生成一次性代码的方法
CN109615351A (zh) Sim卡、终端机和数字货币管理系统
CN101136750A (zh) 一种网络实名制的实现方法
CN101438531A (zh) 认证方法和系统
CN101764800A (zh) 一种动态密码的多终端联合验证方法
CN101010903A (zh) 用于生成并验证电子签名的方法
CN102098315A (zh) 一种客户端安全登录方法、装置及系统
CN103186850A (zh) 用于获取支付凭证的方法、设备及系统
CN104125230B (zh) 一种短信认证服务系统以及认证方法
CN105338000B (zh) 一种验证方法、验证系统
CN106411950A (zh) 基于区块链交易id的认证方法、装置及系统
CN106779698A (zh) 一种支付标记的分发及其安全支付方法、系统及装置
US10003589B2 (en) Authentication and/or identification method in a communication network
CN101777101B (zh) 一种提高智能密钥设备易用性的方法和智能密钥设备
CN101488256B (zh) 柜员身份认证系统及方法
CN101771696A (zh) 多层式数据映对认证系统
CN110266653A (zh) 一种鉴权方法、系统及终端设备
CN109087102A (zh) 基于区块链的交易保护用机器人系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190520

Address after: Room 106, Tianzuo Road, Xingcheng City, Mount Camera, Xigang Office, Qixia District, Nanjing, Jiangsu Province

Patentee after: NANJING WANGHE INTELLIGENT TECHNOLOGY CO., LTD.

Address before: 100083 Block C 510, Caizhi International Building, 18 Zhongguancun East Road, Haidian District, Beijing

Patentee before: Beijing Wang He Time Technology Co., Ltd

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170929

Termination date: 20210228

CF01 Termination of patent right due to non-payment of annual fee