一种提升兼容性的数字签名生成方法及系统技术方案

技术编号:13605591 阅读:109 留言:0更新日期:2016-08-28 04:24
本发明专利技术涉及一种提升兼容性的数字签名生成方法及系统,本发明专利技术中通过获取与源数据对应的统一URL编码字符串,并根据所述统一URL编码字符串和密钥生成数字签名的方法保证了数字签名的兼容性,本发明专利技术通过对各种URL编码环境进行辨识和对于待编码字符串进行均一化处理,解决了在不同编码环境下URL编码结果不一致的问题,进而保证了数字签名与URL的编码环境无关;通过提供密钥生成方法和数字签名生成方法,从而在提升数字签名兼容性的基础上还能够提升数字签名的安全性;此外,本发明专利技术中对于待编码字符串的均一化处理方法还能够为跨平台、跨语言使用URL编码的相关应用领域提供技术支持。

【技术实现步骤摘要】

本专利技术涉及网络安全领域,具体涉及一种提升兼容性的数字签名生成方法及系统
技术介绍
数字签名是对信息的发送者发送信息真实性的一个有效证明,具有完整性和不可抵赖性,是网络安全领域最为常用的一项维护网络安全的技术。通常对原始数据进行某种运算后,即可得到与原始值唯一对应的数字签名,数字签名能够有效地验证原始数据是否被修改。在数据签名生成过程中,通常需要用到URL编码技术,所谓URL编码技术也被称之位百分号编码,是指将指定的可见字符转换为对应的百分号编码,以便数据传输使用时避免有些字符引起的歧义。在各种开发语言中使用URL编码技术得到的结果并不是完全相同,因此在各语言的环境中使用URL编码技术后,得到的数字签名也不完全相同,从而引发关于数字签名的兼容性问题。以Microsoft.NET平台为例,这种开发环境的URL编码器httpUtility.URLEncode会将字符‘=’编码成‘%3d’,而不是符合国际标准RFC3986定义的%3D,在这种开发环境下直接获得的URL编码与国际标准不一致会导致数字签名不能通过验证;以JAVA开发平台为例,这种开发环境的URL编码器java.net.U本文档来自技高网...

【技术保护点】
一种提升兼容性的数字签名生成方法,其特征在于,包括:根据源数据获取与所述源数据对应的统一URL编码字符串,所述统一URL编码字符串包括均一化子串,所述均一化子串由所述源数据中的元素进行均一化编码生成,所述均一化子串符合URL编码规范并且与所述源数据的URL编码环境无关;获取密钥,并根据所述源数据对应的统一URL编码字符串和所述密钥生成数字签名。

【技术特征摘要】
1.一种提升兼容性的数字签名生成方法,其特征在于,包括:根据源数据获取与所述源数据对应的统一URL编码字符串,所述统一URL编码字符串包括均一化子串,所述均一化子串由所述源数据中的元素进行均一化编码生成,所述均一化子串符合URL编码规范并且与所述源数据的URL编码环境无关;获取密钥,并根据所述源数据对应的统一URL编码字符串和所述密钥生成数字签名。2.根据权利要求1所述的一种提升兼容性的数字签名生成方法,其特征在于,所述均一化编码包括:对所述元素进行编码,生成在所述源数据的URL编码环境下的URL编码字符串;将所述URL编码字符串中与所述URL编码规范不兼容的字符替换为与所述URL编码规范兼容的字符,获得与所述元素对应的均一化子串。3.根据权利要求2所述的一种提升兼容性的数字签名生成方法,其特征在于,所述源数据包括网络请求中的请求方式、URL路径和参数,所述根据所述源数据获取所述源数据对应的统一URL编码字符串包括:获取第一字符串,所述第一字符串为与所述URL路径对应的均一化子串;获取第二字符串,所述第二字符串为与所述参数对应的均一化子串;将所述网络请求中的请求方式、所述第一字符串和所述第二字符串之间使用字符“&”依次进行连接,获得与所述源数据对应的统一URL编码字符串。4.根据权利要求3所述的一种提升兼容性的数字签名生成方法,其特征在于,所述根据所述源数据对应的统一URL编码字符串和所述密钥生成
\t所述数字签名包括:获取密钥字符串,所述密钥字符串由所述密钥和拼接字符“&”构成;将所述密钥字符串和所述源数据对应的统一URL编码字符串分别作为散列函数的参数进行散列运算,将运算结果作为所述数字签名。5.根据权利要求1所述的一种提升兼容性的数字签名生成方法,其特征在于,所述密钥的长度为M,所述密钥的生成方法包括:选择参与构建密钥的字符和/或字符串;将所述字符和/或字符串进行拼接,形成长度为L的目标字符串;每一次抽取一个目标字符,共抽取M次;将M个所述目标字符依次拼接构成密钥。6.根据权利要求5中所述的一种提升兼容性的数字签名生成方法,其特征在于,每一次抽取目标字符均包括:随机生成一个0到L-1之间的整数N,L为所述目标字符串的长度;将所述目标字符串中的第N个位置的字符作为目标字符。7.一种提升兼容性的数字签名生成系统,其特征在于,包括统一URL编码字符串获取模块、密钥获取模块和数字签名获取模块,所述统一URL编码字符串获取模块用于根据源数据获取所述源数据对应的统一URL编码字符...

【专利技术属性】
技术研发人员:龙付成
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1