CN103841199B - 一种实现浏览器倒计时的方法 - Google Patents
一种实现浏览器倒计时的方法 Download PDFInfo
- Publication number
- CN103841199B CN103841199B CN201410084643.9A CN201410084643A CN103841199B CN 103841199 B CN103841199 B CN 103841199B CN 201410084643 A CN201410084643 A CN 201410084643A CN 103841199 B CN103841199 B CN 103841199B
- Authority
- CN
- China
- Prior art keywords
- countdown
- time
- server
- page
- user name
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种实现浏览器倒计时的方法,属于信息安全领域。所述方法包括:当加载倒计时页面时,倒计时页面执行:A、将发送按钮置不可用,判断是否能从cookie中获取到时间值,是则B,否则D;B、根据获取的当前系统时间、时间值和载入的倒计时时间,得到仍需倒计时的时间,判断是否处于倒计时状态,是则C,否则D;C、调用倒计时函数,更新并显示仍需倒计时的时间,判断是否结束倒计时,是则D,否则C;D、将发送按钮置可用,当检测到发送按钮被按下时,生成口令请求并发给服务器,将发送按钮置不可用,更新时间值,返回B。采用本发明的方案,在浏览器刷新或重新打开后,仍可执行正常倒计时业务,并实现短信令牌的功能。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种实现浏览器倒计时的方法。
背景技术
浏览器是显示网页服务器或档案系统内的文件,并让用户与此些文件互动的一种软件,用来显示万维网或局域网等的文字、影像或用于连接其他网络的超链接。
cookie,有时也用其复数cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据,通常是经过加密的数据。
在现有技术中,浏览器使用window.setInterval(表达式,延时时间)做倒计时处理,该函数的意义是让浏览器定时执行一些设定好的函数代码,例如,window.setInterval(‘abc’,3000),即浏览器每间隔3秒则执行一次abc,但此种方式在浏览器刷新或重新打开后,倒计时会失效。
发明内容
本发明的目的是为了解决现有技术中存在的问题,提供了一种实现浏览器倒计时的方法。
本发明采用的技术方案是:一种实现浏览器倒计时的方法,包括:当加载倒计时页面时,所述倒计时页面执行以下操作:
步骤S1:所述倒计时页面初始化,将发送按钮置为不可用状态;
步骤S2:所述倒计时页面载入倒计时时间;
步骤S3:所述倒计时页面判断是否能够从cookie中获取到时间值,是则获取当前系统时间,执行步骤S4,否则执行步骤S7;
步骤S4:所述倒计时页面根据当前系统时间、所述时间值和所述倒计时时间,得到仍需倒计时的时间,根据所述仍需倒计时的时间,判断是否处于倒计时状态,是则执行步骤S5,否则执行步骤S7;
步骤S5:所述倒计时页面调用倒计时函数,根据所述倒计时函数,更新所述仍需倒计时的时间;
步骤S6:所述倒计时页面显示所述仍需倒计时的时间,根据所述仍需倒计时的时间,判断是否结束倒计时,如果是,则执行步骤S7,否则返回步骤S5;
步骤S7:所述倒计时页面将所述发送按钮置为可用状态;
步骤S8:当所述倒计时页面检测到所述发送按钮被按下时,生成口令请求,将所述口令请求发送给服务器,将所述发送按钮置为不可用状态,并获取当前系统时间,根据所述当前系统时间更新cookie中的时间值,返回执行步骤S4。
所述步骤S2中,所述倒计时时间为预设时间,或用户根据需求而设置的时间。
所述步骤S3中,所述判断是否能够从cookie中获取到时间值,具体为:
步骤S3-1:所述倒计时页面调用获取时间值函数,根据传入的时间值属性名,获取需要读取的时间值,将所述时间值属性名的长度与第一预设字符的长度之和作为第一长度,将所述时间值属性名的字符和所述第一预设字符的组合作为组合字符;
步骤S3-2:所述倒计时页面从cookie的第一个字符开始,获取长度为所述第一长度的字符串,将所述字符串作为当前字符串;
步骤S3-3:所述倒计时页面判断当前字符串与所述组合字符是否相同,如果是,则执行步骤S3-4,否则执行步骤S3-7;
步骤S3-4:所述倒计时页面调用检索函数,判断是否能够查找到当前字符串后的首个第二预设字符,如果是,则执行步骤S3-5,否则执行步骤S3-6;
步骤S3-5:所述倒计时页面获取所述当前字符串与所述第二预设字符之间的字符串,作为需要读取的时间值,执行步骤S4;
步骤S3-6:所述倒计时页面获取当前字符串后的所有字符串,作为需要读取的时间值,执行步骤S4;
步骤S3-7:所述倒计时页面调用检索函数,查找当前字符串后的首个第三预设字符;
步骤S3-8:所述倒计时页面判断是否还有未处理的字符,如果是,则执行步骤S3-9,否则未找到需要读取的时间值,执行步骤S7;
步骤S3-9:所述倒计时页面从当前字符串后的首个第三预设字符后的第一个字符开始,获取长度为所述第一长度的字符串,将获取到的所述字符串作为当前字符串,返回步骤S3-3。
所述步骤S3之前还包括:所述倒计时页面判断是否能够获取到cookie,如果是,则执行步骤S3,否则所述倒计时页面将所述发送按钮置为可用状态,当检测到所述发送按钮被按下时,创建cookie,并获取当前系统时间,将该当前系统时间作为时间值记录在cookie中,执行步骤S4。
所述步骤S4,具体为:所述倒计时页面计算所述时间值与所述倒计时时间的和,再与当前系统时间的差值,将所述差值作为仍需倒计时的时间,判断所述差值是否大于0,如果是,则执行步骤S5,否则执行步骤S7。
所述步骤S4,具体为:所述倒计时页面计算当前系统时间减去所述时间值再减去倒计时时间的差值,将所述差值作为仍需倒计时的时间,判断所述差值是否小于0,如果是,则执行步骤S5,否则执行步骤S7。
所述步骤S6中,所述显示所述仍需倒计时的时间,具体为:所述倒计时页面在所述发送按钮的位置显示所述仍需倒计时的时间。
所述步骤S6中,所述根据所述仍需倒计时的时间,判断是否结束倒计时,具体为:判断所述仍需倒计时的时间是否等于0,如果是,则执行步骤S7,否则返回步骤S5。
所述步骤S7,还包括:当所述倒计时页面检测到鼠标光标放置在所述发送按钮上时,将所述发送按钮的边缘宽度设置为第一预设宽度,将所述发送按钮的边缘线设置为第一预设类型,将所述发送按钮的字体颜色设置为第一预设颜色,将所述发送按钮的背景色设置为第一预设背景色。
所述步骤S7,还包括:当所述倒计时页面检测到鼠标光标移开所述发送按钮时,将所述发送按钮的边缘宽度设置为第二预设宽度,将所述发送按钮的边缘线设置为第二预设类型,将所述发送按钮的字体颜色设置为第二预设颜色,将所述发送按钮的背景色设置为第二预设背景色。
所述步骤S8中,所述生成口令请求,具体为:所述倒计时页面判断是否接收到用户输入的用户名,如果是,则根据所述用户名,生成口令请求,否则提示用户名不能为空,结束。
所述步骤S8中,所述将所述口令请求发送给服务器之后,所述服务器执行以下操作:
步骤a1:所述服务器接收到所述口令请求后,获取所述口令请求中的用户名;
步骤a2:所述服务器根据所述用户名,从服务器存储区中查找与所述用户名对应的令牌序列号,并判断是否能够找到与所述用户名对应的令牌序列号,如果是,则执行步骤a3,否则向所述倒计时页面返回未绑定的响应,结束;
步骤a3:所述服务器根据所述用户名,从所述服务器存储区中获取令牌类型,如果是硬件令牌类型,则向所述倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,则执行步骤a4;
步骤a4:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的令牌种子;
步骤a5:所述服务器应用预设算法,根据所述令牌种子,生成动态口令;
步骤a6:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的手机号;
步骤a7:所述服务器通过短信平台,向所述手机号发送所述动态口令。
所述步骤S8中,所述生成口令请求,具体为:所述倒计时页面判断是否接收到用户输入的用户名和挑战值,如果是,则根据所述用户名和所述挑战值,生成口令请求,否则提示用户名或挑战值不能为空,结束。
所述步骤S8中,将所述口令请求发送给服务器后,所述服务器执行以下操作:
步骤b1:所述服务器接收到所述口令请求后,获取所述口令请求中的用户名和挑战值;
步骤b2:所述服务器根据所述用户名,从服务器存储区中查找与所述用户名对应的令牌序列号,并判断是否能够找到与所述用户名对应的令牌序列号,如果是,则执行步骤b3,否则向所述倒计时页面返回未绑定的响应,结束;
步骤b3:所述服务器根据所述用户名,从所述服务器存储区中获取令牌类型,如果是硬件令牌类型,则向所述倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,执行步骤b4;
步骤b4:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的令牌种子;
步骤b5:所述服务器应用预设算法,根据所述令牌种子和所述挑战值,生成应答值;
步骤b6:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的手机号;
步骤b7:所述服务器通过短信平台,向所述手机号发送所述应答值。
所述向所述倒计时页面返回硬件令牌响应后,还包括:所述倒计时页面接收到所述服务器返回的硬件令牌响应后,显示输入硬件令牌口令的信息。
所述向所述手机号发送所述动态口令后,还包括:所述服务器获取当前服务器时间,将所述用户名和所述当前服务器时间写入服务器日志中。
所述向所述手机号发送所述应答值后,还包括:所述服务器获取当前服务器时间,将所述用户名、挑战值和所述当前服务器时间写入服务器日志中。
本发明取得的有益效果是:采用本发明的方案,在浏览器刷新或重新打开后,仍可执行正常倒计时业务,服务器对口令请求进行处理,实现短信令牌的功能。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种实现浏览器倒计时的方法流程图;
图2是本发明实施例1中步骤105的具体细化图;
图3是本发明实施例2提供的一种服务器对口令请求的处理流程图;
图4是本发明实施例3提供的一种服务器对口令请求的处理流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例1提供了一种实现浏览器倒计时的方法,如图1所示,包括:
当加载倒计时页面时,倒计时页面执行以下操作:
步骤101:倒计时页面初始化,将发送按钮置为不可用状态;
其中,将发送按钮置为不可用状态,具体为:将发送按钮置为disable状态;
步骤102:倒计时页面载入倒计时时间;
本实施例中,倒计时时间可以为预设时间,还可以为用户根据需求而设置的时间,优选的,当倒计时时间为用户根据需求设置的时间时,倒计时时间需小于cookie的生命周期;
其中,倒计时页面载入倒计时时间,具体为:倒计时页面通过java脚本从后台配置信息中读取倒计时时间;
例如,本实施例中,倒计时页面载入的倒计时时间为60s,即60000ms;
步骤103:倒计时页面判断是否能够获取到cookie,如果是,则执行步骤105,否则执行步骤104;
步骤104:倒计时页面将发送按钮置为可用状态,当检测到发送按钮被按下时,创建cookie,并获取当前系统时间,将当前系统时间作为时间标记记录在cookie中,执行步骤107;
步骤105:倒计时页面判断是否能够从cookie中获取到时间值,如果是,则执行步骤106,否则执行步骤111;
参见图2,本实施例中,判断是否能够从cookie中获取到时间值,具体为:
步骤105-1:倒计时页面调用获取时间值函数,根据传入的参数时间值属性名获取需要读取的时间值,将时间值属性名的长度与第一预设字符的长度之和,作为第一长度,将时间值属性名的字符和第一预设字符的组合作为组合字符;
具体为,倒计时页面调用获取时间值函数function getTimeMark(timemark),根据传入的参数时间值属性名(timemark)获取需要读取的时间值;
其中,第一预设字符为“=”,本实施例中,传入的参数为timemark,长度为8,则第一长度为9,组合字符为“timemark=”;
例如,cookie为:JESSIONID=54A512288A46998B79C4BCFBFE5D8626;timemark=1387261920000。
步骤105-2:倒计时页面从cookie的第一个字符开始,获取长度为第一长度的字符串,将该字符串作为当前字符串;
例如,从cookie的第一个字符J开始,获取长度为9的字符串,即为JESSIONID,将该字符串作为当前字符串;
步骤105-3:倒计时页面判断当前字符串与组合字符是否相同,如果是,则执行步骤105-4,否则执行步骤105-7;
例如,本实施例中,比较当前字符串JESSIONID和组合字符timemark=不相同,执行步骤105-7;
步骤105-4:倒计时页面调用检索函数,判断是否能够查找到当前字符串后的首个第二预设字符,如果是,则执行步骤105-5,否则执行步骤105-6;
其中,优选的,第二预设字符为“;”,通过调用检索函数varendstr=bikky.indexOf(";",offset),从cookie中获取timemark=之后的首个“;”;
例如,本实施例中,cookie中timemark=11387261920000,当前字符串timemark=后不存在“;”,执行步骤105-6;
步骤105-5:倒计时页面获取当前字符串与第二预设字符之间的字符串,作为需要读取的时间值,执行步骤106;
步骤105-6:倒计时页面获取当前字符串后的所有字符串,作为需要读取的时间值,执行步骤106;
例如,本实施例中,获取当前字符串“timemark=”后的所有字符串1387261920000,即为需要读取的时间值;
步骤105-7:倒计时页面调用检索函数,查找当前字符串后的首个第三预设字符;
其中,优选的,第三预设字符为空格,通过调用检索函数varendstr=bikky.indexOf("",offset),从cookie中获取JESSIONID后的首个空格;
步骤105-8:倒计时页面判断是否还有未处理的字符,如果是,则执行步骤105-9,否则未找到需要读取的时间值,执行步骤111;
具体为:判断第三预设字符后是否还有其他字符,是则还有未处理的字符,否则没有未处理的字符;
步骤105-9:倒计时页面从当前字符串后的首个第三预设字符后的第一个字符开始,获取长度为第一长度的字符串,将该字符串作为当前字符串,返回步骤105-3;
例如,本实施例中,倒计时页面从cookie中获取到时间值为1387261920000ms,即2013-12-1714:32:00;
步骤106:倒计时页面获取当前系统时间;
例如,倒计时页面获取到当前系统时间为1387261940000ms,即2013-12-1714:32:20;
步骤107:倒计时页面根据当前系统时间、时间值和倒计时时间,得到仍需倒计时的时间;
本实施例中,优选的,根据当前系统时间、时间值和倒计时时间,得到仍需倒计时的时间,具体为:倒计时页面计算时间值与倒计时时间之和,再与当前系统时间的差值,将该差值作为仍需倒计时的时间;
例如,本实施例中,当前系统时间为1387261940000ms,则时间值1387261920000ms加上倒计时时间60000ms,再与当前系统时间1387261940000ms的差值为40000ms,则仍需倒计时的时间为40000ms;
除此之外,还可以为:倒计时页面计算当前系统时间减去时间值再减去倒计时时间的差值,将该差值的绝对值作为仍需倒计时的时间;例如,本实施例中,当前系统时间1387261940000ms减去时间值1387261920000ms再减去倒计时时间60000ms,结果为-40000ms,将该差值作为仍需倒计时的时间;
如果当前系统时间为1387261990000ms,则当前系统时间减去cookie中记录的时间1387261920000ms再减去倒计时时间60000ms,结果为10000ms,将该差值作为仍需倒计时的时间;
步骤108:倒计时页面根据仍需倒计时的时间,判断是否处于倒计时状态,如果是,则执行步骤109,否则执行步骤111;
本实施例中,优选的,倒计时页面计算时间值加上倒计时时间,再与当前系统时间的差值,作为仍需倒计时的时间,则判断是否处于倒计时状态,具体为:判断仍需倒计时的时间是否大于0,如果是,则处于倒计时状态,否则已结束倒计时;
除此之外,还可以为:倒计时页面计算当前系统时间减去时间值再减去倒计时时间的差值的绝对值,作为仍需倒计时的时间,则判断是否处于倒计时状态,具体为:判断该差值是否小于0,如果是,则处于倒计时状态,否则已结束倒计时;
步骤109:倒计时页面调用倒计时函数,根据倒计时函数的参数,更新仍需倒计时的时间;
本实施例中,倒计时页面调用倒计时函数:var timer=window.setInterval(function(),time),每隔time时间,调用一次function()函数,优选的,time为1000ms;
其中,function()函数为:
function()
{second--;
document.getElementById("sendbutt").value="剩余"+second+"秒″;
if(second<=0){
clearInterval(timer);
document.getElementById("sendbutt").value="发送";
$("#sendbutt").attr("disabled",false);}
其中,根据倒计时函数的参数,更新仍需倒计时的时间,具体为:根据上述倒计时函数中的1000ms,将仍需倒计时的时间减去1000ms,得到剩余的倒计时时间,将剩余的倒计时时间作为更新后的仍需倒计时的时间,即40000ms减去1000ms,等于39000ms;
步骤110:倒计时页面显示仍需倒计时的时间,并根据仍需倒计时的时间,判断是否结束倒计时,如果是,则执行步骤111,否则返回执行步骤109;
本实施例中,优选的,以秒的形式显示,包括:将毫秒形式的仍需倒计时的时间除以1000,得到秒形式的仍需倒计时的时间;通过调用document.getElementById("sendbutt").Value="剩余"+second+"秒";在倒计时界面上显示“剩余39秒”;
优选的,本实施例中,倒计时页面在发送按钮的位置显示仍需倒计时的时间;
其中,优选的,根据仍需倒计时的时间,判断是否结束倒计时,具体为;判断仍需倒计时的时间是否等于0,如果是,则结束倒计时,否则未结束倒计时;
步骤111:倒计时页面将发送按钮置为可用状态;
本实施例中,将发送按钮置为可用状态,具体为:将发送按钮的disable状态清除;
本实施例中,步骤111还包括:当倒计时页面检测到鼠标光标放置在发送按钮上时,将发送按钮的边缘宽度设置为第一预设宽度,将发送按钮的边缘线设置为第一预设类型,将发送按钮的字体颜色设置为第一预设颜色,将发送按钮的背景色设置为第一预设背景色;
例如,倒计时页面将发送按钮设置为:$(this).css({border:"1px solid rgb(164,164,164)",color:"rgb(43,43,43)"});其中,将边缘宽度设置为1px(像素),solid(实线),将rgb(字体颜色)设置为(164,164,164),查找颜色对应表,可得字体颜色为深灰色,将发送按钮的背景色设置为rgb(43,43,43),查找颜色对应表,可得背景色为暗石板灰色;
进一步地,步骤111还包括:当倒计时页面检测到鼠标光标移开发送按钮时,将发送按钮的边缘宽度设置为第二预设宽度,将发送按钮的边缘线设置为第二预设类型,将发送按钮的字体颜色设置为第二预设颜色,将发送按钮的背景色设置为第二预设背景色;
例如,倒计时页面将发送按钮格式设置为:$("#sendbutt").css({background:"rgb(111,181,54)",border:"1px solid rgb(92,152,44)",color:"rgb(255,255,255)"});其中,将背景色设置为rgb(111,181,54),查找颜色对应表,可得背景色为橄榄褐色,将边框宽度设置为1px(像素),solid(实线),将边框颜色设置为(92,152,44),查找颜色对应表,可得边框颜色为深灰色,将字体颜色设置为(255,255,255),查找颜色对应表,可得边框颜色为浅粉色;
步骤112:当倒计时页面检测到发送按钮被按下时,生成口令请求,将口令请求发送给服务器,将发送按钮置为不可用状态,并获取当前系统时间,根据当前系统时间更新cookie中的时间值,返回执行步骤107;
本实施例中,根据当前系统时间更新cookie中的时间值,具体为:将cookie中记录的时间值替换为当前系统时间;
本实施例中,在任意步骤时,对倒计时页面执行关闭再打开或刷新页面的操作时,均从步骤101开始执行。
实施例2
本发明实施例1中步骤112中,所述生成口令请求,具体包括:当倒计时页面检测到发送按钮被按下时,倒计时页面判断是否接收到用户输入的用户名,如果是,则根据用户名,生成口令请求,否则提示用户名不能为空结束;
实施例2是在实施例1的基础上提供了一种服务器处理口令请求的方法,如图3所示,包括:
步骤201:服务器接收到口令请求后,获取口令请求中的用户名;
步骤202:服务器根据用户名,从服务器存储区中查找与用户名对应的令牌序列号,判断是否能够找到与用户名对应的令牌序列号,如果是,则执行步骤203,否则向倒计时页面返回未绑定的响应,结束;
例如,本实施例中,口令请求中的用户名为“zhangsan”,从服务器存储区中查找到与该用户名对应的令牌序列号为:2600206109357;
本实施例中,服务器存储区中存放一一对应的用户名、令牌序列号、令牌类型、令牌种子和手机号;
步骤203:服务器根据用户名,从服务器存储区中获取令牌类型,如果是硬件令牌类型,则向倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,执行步骤204;
本实施例中,还包括:倒计时页面接收到服务器返回硬件令牌响应后,显示相应信息,如显示“请输入硬件令牌口令”;
优选的,本实施例中,当获取到的令牌类型为1时,标识令牌类型为短信令牌类型,当获取到的令牌类型为0时,标识令牌类型为硬件令牌类型;
步骤204:服务器根据用户名,从服务器存储区中获取与用户名对应的令牌种子;
例如,获取到的令牌种子为:0x085356C41D5CD4A08B516BFB75EB42502E5942083A4E15DAEE57F12E8D892E4F31323334353600000000000000000000;
步骤205:服务器应用预设算法,根据令牌种子,生成动态口令;
本实施例中,优选的,预设算法为SM3算法,除此之外,还可以为SHA2、SHA256算法等;
例如,本实施例中,应用SM3算法对令牌种子进行计算,得到的结果转换为6位十进制的动态口令:327751;
步骤206:服务器根据用户名,从服务器存储区中获取与用户名对应的手机号;
例如,本实施例中,获取到的手机号为13212345678;
步骤207:服务器通过短信平台,向手机号发送动态口令;
例如,本实施例中,服务器将动态口令327751发送给手机号为13212345678的手机;
步骤208:服务器获取当前服务器时间,将用户名和当前服务器时间写入服务器日志中;
例如,服务器获取到当前服务器时间为2013-12-1714:34:10,将用户名“张三”和当前服务器时间2013-12-1714:34:10写入服务器日志中;
本实施例,还可以为:
步骤a1:服务器接收到口令请求后,获取口令请求中的用户名;
步骤a2:服务器根据用户名,从服务器存储区中获取与用户名对应的令牌系列号、令牌类型、令牌种子和手机号;
本实施例中,还包括:判断是否能够获取到令牌序列号、令牌类型、令牌种子和手机号,如果是,则执行步骤a3,否则向倒计时页面返回未绑定的响应,结束;
步骤a3:服务器判断令牌类型,如果是硬件令牌类型,则向倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,执行步骤a4;
步骤a4:服务器应用预设算法,根据令牌种子,生成动态口令,通过短信平台,将动态口令发送给对应的手机号;
步骤a5:服务器获取当前服务器时间,将用户名和当前服务器时间写入服务器日志中。
实施例3
本发明实施例1中步骤112中,所述生成口令请求,具体包括:当倒计时页面检测到发送按钮被按下时,倒计时页面判断是否接收到用户输入的用户名和挑战值,如果是,则根据用户名和挑战值,生成口令请求,否则提示用户名或挑战值不能为空,结束;
实施例3是在实施例1的基础上提供了一种服务器处理口令请求的方法,如图4所示,包括:
步骤301:服务器接收到口令请求后,获取口令请求中的用户名和挑战值;
例如,本实施例中,口令请求中的用户名为“张三”,挑战值为123456;
步骤302:服务器根据用户名,从服务器存储区中查找与用户名对应的令牌序列号,判断是否能够找到与用户名对应的令牌序列号,如果是,则执行步骤303,否则向倒计时页面返回未绑定的响应,结束;
例如,本实施例中,从服务器存储区中查找到与该用户名对应的令牌序列号为:2600206109357;
本实施例中,服务器存储区中存放一一对应的用户名、令牌序列号、令牌类型、令牌种子和手机号;
步骤303:服务器根据用户名,从服务器存储区中获取令牌类型,如果是硬件令牌类型,则向倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,执行步骤304;
本实施例中,还包括:倒计时页面接收到服务器返回硬件令牌响应后,显示相应信息,如显示“请输入硬件令牌口令”;
优选的,本实施例中,当获取到的令牌类型为1时,标识令牌类型为短信令牌类型,当获取到的令牌类型为0时,标识令牌类型为硬件令牌类型;
步骤304:服务器根据用户名,从服务器存储区中获取与用户名对应的令牌种子;
例如,获取到的令牌种子为:B1898567429FB477045D4E98DCA849C22177CC79724FB155330E669390EE8ED1;
步骤305:服务器应用预设算法,根据令牌种子和挑战值,生成应答值;
本实施例中,优选的,预设算法为SM3算法,除此之外,还可以为SHA2、SHA256算法等;
例如,本实施例中,应用SM3算法对令牌种子和挑战值进行计算,得到的结果转换为6位十进制的应答值:462156;
步骤306:服务器根据用户名,从服务器存储区中获取与用户名对应的手机号;
例如,本实施例中,获取到的手机号为13212345678;
步骤307:服务器通过短信平台,向手机号发送应答值;
例如,本实施例中,服务器将动态口令462156发送给手机号为13212345678的手机;
步骤308:服务器获取当前服务器时间,将用户名、挑战值和当前服务器时间写入服务器日志中;
例如,服务器获取到当前服务器时间为2013-12-1714:34:10,将用户名“张三”、挑战值123456和当前服务器时间2013-12-1714:34:10写入服务器日志中。
本实施例,还可以为:
步骤b1:服务器接收到口令请求后,获取口令请求中的用户名和挑战值;
步骤b2:服务器根据用户名,从服务器存储区中获取与用户名对应的令牌系列号、令牌类型、令牌种子和手机号;
本实施例中,还包括:判断是否能够获取到令牌序列号、令牌类型、令牌种子和手机号,如果是,则执行步骤b3,否则向倒计时页面返回未绑定的响应,结束;
步骤b3:服务器判断令牌类型,如果是硬件令牌类型,则向倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,执行步骤b4;
步骤b4:服务器应用预设算法,根据令牌种子和挑战值,生成应答值,通过短信平台,将应答值发送给对应的手机号;
步骤b5:服务器获取当前服务器时间,将用户名、挑战值和当前服务器时间写入服务器日志中。
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (17)
1.一种实现浏览器倒计时的方法,其特征在于,包括:当加载倒计时页面时,所述倒计时页面执行以下操作:
步骤S1:所述倒计时页面初始化,将发送按钮置为不可用状态;
步骤S2:所述倒计时页面载入倒计时时间;
步骤S3:所述倒计时页面判断是否能够从cookie中获取到时间值,是则获取当前系统时间,执行步骤S4,否则执行步骤S7;
步骤S4:所述倒计时页面根据当前系统时间、所述时间值和所述倒计时时间,得到仍需倒计时的时间,根据所述仍需倒计时的时间,判断是否处于倒计时状态,是则执行步骤S5,否则执行步骤S7;
步骤S5:所述倒计时页面调用倒计时函数,根据所述倒计时函数,更新所述仍需倒计时的时间;
步骤S6:所述倒计时页面显示所述仍需倒计时的时间,根据所述仍需倒计时的时间,判断是否结束倒计时,如果是,则执行步骤S7,否则返回步骤S5;
步骤S7:所述倒计时页面将所述发送按钮置为可用状态;
步骤S8:当所述倒计时页面检测到所述发送按钮被按下时,生成口令请求,将所述口令请求发送给服务器,将所述发送按钮置为不可用状态,并获取当前系统时间,根据所述当前系统时间更新cookie中的时间值,返回执行步骤S4。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2中,所述倒计时时间为预设时间,或用户根据需求而设置的时间。
3.根据权利要求1所述的方法,其特征在于,所述步骤S3中,所述判断是否能够从cookie中获取到时间值,具体为:
步骤S3-1:所述倒计时页面调用获取时间值函数,根据传入的时间值属性名,获取需要读取的时间值,将所述时间值属性名的长度与第一预设字符的长度之和作为第一长度,将所述时间值属性名的字符和所述第一预设字符的组合作为组合字符;
步骤S3-2:所述倒计时页面从cookie的第一个字符开始,获取长度为所述第一长度的字符串,将所述字符串作为当前字符串;
步骤S3-3:所述倒计时页面判断当前字符串与所述组合字符是否相同,如果是,则执行步骤S3-4,否则执行步骤S3-7;
步骤S3-4:所述倒计时页面调用检索函数,判断是否能够查找到当前字符串后的首个第二预设字符,如果是,则执行步骤S3-5,否则执行步骤S3-6;
步骤S3-5:所述倒计时页面获取所述当前字符串与所述第二预设字符之间的字符串,作为需要读取的时间值,执行步骤S4;
步骤S3-6:所述倒计时页面获取当前字符串后的所有字符串,作为需要读取的时间值,执行步骤S4;
步骤S3-7:所述倒计时页面调用检索函数,查找当前字符串后的首个第三预设字符;
步骤S3-8:所述倒计时页面判断是否还有未处理的字符,如果是,则执行步骤S3-9,否则未找到需要读取的时间值,执行步骤S7;
步骤S3-9:所述倒计时页面从当前字符串后的首个第三预设字符后的第一个字符开始,获取长度为所述第一长度的字符串,将获取到的所述字符串作为当前字符串,返回步骤S3-3。
4.根据权利要求1所述的方法,其特征在于,所述步骤S3之前还包括:所述倒计时页面判断是否能够获取到cookie,如果是,则执行步骤S3,否则所述倒计时页面将所述发送按钮置为可用状态,当检测到所述发送按钮被按下时,创建cookie,并获取当前系统时间,将该当前系统时间作为时间值记录在cookie中,执行步骤S4。
5.根据权利要求1所述的方法,其特征在于,所述步骤S4,具体为:所述倒计时页面计算所述时间值与所述倒计时时间的和,再与当前系统时间的差值,将所述差值作为仍需倒计时的时间,判断所述差值是否大于0,如果是,则执行步骤S5,否则执行步骤S7。
6.根据权利要求1所述的方法,其特征在于,所述步骤S4,具体为:所述倒计时页面计算当前系统时间减去所述时间值再减去倒计时时间的差值,将所述差值作为仍需倒计时的时间,判断所述差值是否小于0,如果是,则执行步骤S5,否则执行步骤S7。
7.根据权利要求1所述的方法,其特征在于,所述步骤S6中,所述显示所述仍需倒计时的时间,具体为:所述倒计时页面在所述发送按钮的位置显示所述仍需倒计时的时间。
8.根据权利要求1所述的方法,其特征在于,所述步骤S6中,所述根据所述仍需倒计时的时间,判断是否结束倒计时,具体为:判断所述仍需倒计时的时间是否等于0,如果是,则执行步骤S7,否则返回步骤S5。
9.根据权利要求1所述的方法,其特征在于,所述步骤S7,还包括:当所述倒计时页面检测到鼠标光标放置在所述发送按钮上时,将所述发送按钮的边缘宽度设置为第一预设宽度,将所述发送按钮的边缘线设置为第一预设类型,将所述发送按钮的字体颜色设置为第一预设颜色,将所述发送按钮的背景色设置为第一预设背景色。
10.根据权利要求9所述的方法,其特征在于,所述步骤S7,还包括:当所述倒计时页面检测到鼠标光标移开所述发送按钮时,将所述发送按钮的边缘宽度设置为第二预设宽度,将所述发送按钮的边缘线设置为第二预设类型,将所述发送按钮的字体颜色设置为第二预设颜色,将所述发送按钮的背景色设置为第二预设背景色。
11.根据权利要求1所述的方法,其特征在于,所述步骤S8中,所述生成口令请求,具体为:所述倒计时页面判断是否接收到用户输入的用户名,如果是,则根据所述用户名,生成口令请求,否则提示用户名不能为空,结束。
12.根据权利要求11所述的方法,其特征在于,所述步骤S8中,所述将所述口令请求发送给服务器之后,所述服务器执行以下操作:
步骤a1:所述服务器接收到所述口令请求后,获取所述口令请求中的用户名;
步骤a2:所述服务器根据所述用户名,从服务器存储区中查找与所述用户名对应的令牌序列号,并判断是否能够找到与所述用户名对应的令牌序列号,如果是,则执行步骤a3,否则向所述倒计时页面返回未绑定的响应,结束;
步骤a3:所述服务器根据所述用户名,从所述服务器存储区中获取令牌类型,如果是硬件令牌类型,则向所述倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,则执行步骤a4;
步骤a4:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的令牌种子;
步骤a5:所述服务器应用预设算法,根据所述令牌种子,生成动态口令;
步骤a6:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的手机号;
步骤a7:所述服务器通过短信平台,向所述手机号发送所述动态口令。
13.根据权利要求1所述的方法,其特征在于,所述步骤S8中,所述生成口令请求,具体为:所述倒计时页面判断是否接收到用户输入的用户名和挑战值,如果是,则根据所述用户名和所述挑战值,生成口令请求,否则提示用户名或挑战值不能为空,结束。
14.根据权利要求13所述的方法,其特征在于,所述步骤S8中,将所述口令请求发送给服务器后,所述服务器执行以下操作:
步骤b1:所述服务器接收到所述口令请求后,获取所述口令请求中的用户名和挑战值;
步骤b2:所述服务器根据所述用户名,从服务器存储区中查找与所述用户名对应的令牌序列号,并判断是否能够找到与所述用户名对应的令牌序列号,如果是,则执行步骤b3,否则向所述倒计时页面返回未绑定的响应,结束;
步骤b3:所述服务器根据所述用户名,从所述服务器存储区中获取令牌类型,如果是硬件令牌类型,则向所述倒计时页面返回硬件令牌响应,结束,如果是短信令牌类型,执行步骤b4;
步骤b4:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的令牌种子;
步骤b5:所述服务器应用预设算法,根据所述令牌种子和所述挑战值,生成应答值;
步骤b6:所述服务器根据所述用户名,从所述服务器存储区中获取与所述用户名对应的手机号;
步骤b7:所述服务器通过短信平台,向所述手机号发送所述应答值。
15.根据权利要求12或14所述的方法,其特征在于,所述向所述倒计时页面返回硬件令牌响应后,还包括:所述倒计时页面接收到所述服务器返回的硬件令牌响应后,显示输入硬件令牌口令的信息。
16.根据权利要求12所述的方法,其特征在于,所述向所述手机号发送所述动态口令后,还包括:所述服务器获取当前服务器时间,将所述用户名和所述当前服务器时间写入服务器日志中。
17.根据权利要求14所述的方法,其特征在于,所述向所述手机号发送所述应答值后,还包括:所述服务器获取当前服务器时间,将所述用户名、挑战值和所述当前服务器时间写入服务器日志中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410084643.9A CN103841199B (zh) | 2014-03-10 | 2014-03-10 | 一种实现浏览器倒计时的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410084643.9A CN103841199B (zh) | 2014-03-10 | 2014-03-10 | 一种实现浏览器倒计时的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103841199A CN103841199A (zh) | 2014-06-04 |
CN103841199B true CN103841199B (zh) | 2017-07-14 |
Family
ID=50804322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410084643.9A Active CN103841199B (zh) | 2014-03-10 | 2014-03-10 | 一种实现浏览器倒计时的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103841199B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095452A (zh) * | 2016-06-15 | 2016-11-09 | 武汉斗鱼网络科技有限公司 | 一种基于javascript的主动监听方法及装置 |
CN110677338B (zh) * | 2019-09-16 | 2021-10-15 | 北京达佳互联信息技术有限公司 | 验证信息计时方法、装置、电子设备和存储介质 |
CN112800376B (zh) * | 2021-04-15 | 2021-07-13 | 成都万创科技股份有限公司 | 一种基于Http循环请求的实现方法及其装置 |
CN114222148B (zh) * | 2021-11-03 | 2024-03-01 | 广州方硅信息技术有限公司 | 倒计时控制方法、装置、存储介质及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202753A (zh) * | 2007-11-29 | 2008-06-18 | 中国电信股份有限公司 | 一种客户端访问插件应用系统的方法和装置 |
CN101242307A (zh) * | 2008-02-01 | 2008-08-13 | 刘峰 | 用嵌入代码代理日志实现网站访问分析系统与方法 |
CN102469091A (zh) * | 2010-11-18 | 2012-05-23 | 金蝶软件(中国)有限公司 | 一种页面验证码处理的方法、装置及终端 |
CN103269273A (zh) * | 2013-06-03 | 2013-08-28 | 上海众人网络安全技术有限公司 | 一种无关账户无缝接入的动态密码登录系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191344B2 (en) * | 2002-08-08 | 2007-03-13 | Authenex, Inc. | Method and system for controlling access to data stored on a data storage device |
-
2014
- 2014-03-10 CN CN201410084643.9A patent/CN103841199B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202753A (zh) * | 2007-11-29 | 2008-06-18 | 中国电信股份有限公司 | 一种客户端访问插件应用系统的方法和装置 |
CN101242307A (zh) * | 2008-02-01 | 2008-08-13 | 刘峰 | 用嵌入代码代理日志实现网站访问分析系统与方法 |
CN102469091A (zh) * | 2010-11-18 | 2012-05-23 | 金蝶软件(中国)有限公司 | 一种页面验证码处理的方法、装置及终端 |
CN103269273A (zh) * | 2013-06-03 | 2013-08-28 | 上海众人网络安全技术有限公司 | 一种无关账户无缝接入的动态密码登录系统及方法 |
Non-Patent Citations (1)
Title |
---|
理想web倒计时器的设计与实现;徐连荣,郭峰,李焕勤;《计算机与信息技术》;20080420;第1-3小节 * |
Also Published As
Publication number | Publication date |
---|---|
CN103841199A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7157222B2 (ja) | セッションセキュリティ分割およびアプリケーションプロファイラ | |
CN104426885B (zh) | 异常账号提供方法及装置 | |
CN103841199B (zh) | 一种实现浏览器倒计时的方法 | |
CN106687971A (zh) | 用来减少软件的攻击面的自动代码锁定 | |
CN110598441B (zh) | 用户隐私保护方法及装置 | |
CN108293044A (zh) | 用于经由域名服务流量分析来检测恶意软件感染的系统和方法 | |
US20140310346A1 (en) | Data analytics and security in social networks | |
CN107743123A (zh) | 一种屏幕水印处理方法及装置 | |
CN103294947A (zh) | 程序解析系统及方法 | |
CN112541181A (zh) | 一种检测服务器安全性的方法和装置 | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
CN107741902A (zh) | 程序应用检测方法及程序应用检测装置 | |
CN103810426B (zh) | 用于检测克隆的虚拟机实例的方法和系统 | |
CN107733883A (zh) | 一种检测批量注册账号的方法及装置 | |
CN106803032A (zh) | 实现网站指纹登录的方法、装置和客户端设备 | |
CN111797355A (zh) | 基于定制浏览器的网页固定存证方法 | |
CN113467784A (zh) | 应用程序处理方法及其装置、计算机可读存储介质 | |
Simmons et al. | Designing and implementing cloud-based digital forensics hands-on labs | |
CN109558722A (zh) | 一种移动介质检查方法、装置和计算机可读存储介质 | |
CN105844176B (zh) | 安全策略生成方法及设备 | |
CN115412345A (zh) | 弱口令的提示修改方法、装置、设备及介质 | |
CN115119197A (zh) | 基于大数据的无线网络风险分析方法、装置、设备及介质 | |
CN111104363B (zh) | 一种fpga云平台使用方法、装置、设备、介质 | |
CN107395450A (zh) | 应用登录情况的监测方法和装置、存储介质、电子装置 | |
González-Landero et al. | ABS‐DDoS: an agent‐based simulator about strategies of both DDoS attacks and their defenses, to achieve efficient data forwarding in sensor networks and IoT devices |
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 |