发明名称 一种基于正则表达式的身份验证方法
摘要 本发明涉及一种基于正则表达式的身份验证方法,属于Web安全领域,具体涉及一种通过正则表达式动态生成符合一定规则的字符串来识别用户身份,使服务器在用户访问的过程中能够使用动态字符串来验证用户身份,防止中间人劫持攻击的方法。所述方法包括在服务器端完成的正则表达式自动生成模块;在客户端完成随机字符串生成模块;在用户使用不同的字符串进行验证的身份验证模块,服务器使用原来产生的正则表达式对该字符串进行匹配,不仅要保证全字符匹配还要保证与以前的字符串不能够重复,如此就可以有效地防止中间人劫持攻击。
申请公布号 CN104038344A 申请公布日期 2014.09.10
申请号 CN201410275481.7 申请日期 2014.06.19
申请人 电子科技大学 发明人 张小松;孙恩博;牛伟纳;陈瑞东;王东;吴安彬;漆艳梅;于洲;杨高明;冀风宇
分类号 H04L9/32(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 成都华典专利事务所(普通合伙) 51223 代理人 徐丰
主权项 一种基于正则表达式的身份验证方法,其包括三个主要模块:正则表达式自动生成模块、随机字符串自动生成模块和身份验证模块,其特征在于:上述正则表达式自动生成模块、随机字符串自动生成模块和身份验证模块按如下步骤进行:(1)正则表达式自动生成模块运行步骤为:第一步:在用户登录验证成功后,通过程序产生一个大于10且小于20的随机偶数;第二步:根据第一步产生的随机数偶数,取出(1/2)*N个不包含限定符的正则表达式片段,再取出(1/2)*N个包含限定符的正则表达式片段;第三步:先将包含限定符的正则表达式片段随机放入字符串数组的奇数位处;第四步:然后将不包含限定符的正则表达式片段从0号开始随机放入字符串数组的偶数位处;第五步:然后将该字符串数组中的正则表达式片段连接成一个完整字符串,就形成一个完整的正则表达式;第六步:在该正则表达式的前后加入开始限定符(^)和结尾限定符($);第七步:最后以安全的方式返回该正则表达式给用户;(2)随机字符串自动生成模块运行步骤为:第一步:在接受服务器发送回来的正则表达式后,首先去掉开始和结尾限制符,对完整的正则表达式进行分块,以‘}’字符对正则表达式进行分割,放入字符串数组Array中;第二步:遍历一个Array中元素,以’{‘对该元素进行分割;第三步:根据非限定符正则片段和正则表达式规则来生成该片段对应随机字符串;第四步:根据分割后面限定符表达式中的限定数字,在该区域内产生限定随机数N,对第三步循环N次来产生该部分随机字符串;第五步:如果Array字符串数组还有数据,将跳转到第二步;第六步:将生成的随机字符串与缓存中的字符串进行比对,如果有相同的字符串已经生成则跳转到第一步重新生成,如果没有,则输出该字符串;(3)随机字符串验证模块具体操作步骤为:第一步:在提取到用户返回的随机字符串之后,提取出与用户相关联的正则表达式;第二步:将该随机字符串和该正则表达式相匹配,如果匹配成功则跳到第三步,如果匹配不成功则跳转到第五步;第三步:然后将对该字符串进行查重,在已经匹配过的字符串中查找是否该字符串已经使用过,如果已经使用过则跳到第五步,如果没有使用过则跳到第四步;第四步:保存该字符串,返回用户所请求的页面;第五步:验证不成功,返回登录页面。
地址 611731 四川省成都市高新区(西区)西源大道2006号