亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種提升兼容性的數(shù)字簽名生成方法及系統(tǒng)的制作方法

文檔序號(hào):10538516閱讀:282來源:國(guó)知局
一種提升兼容性的數(shù)字簽名生成方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種提升兼容性的數(shù)字簽名生成方法及系統(tǒng),本發(fā)明中通過獲取與源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串,并根據(jù)所述統(tǒng)一URL編碼字符串和密鑰生成數(shù)字簽名的方法保證了數(shù)字簽名的兼容性,本發(fā)明通過對(duì)各種URL編碼環(huán)境進(jìn)行辨識(shí)和對(duì)于待編碼字符串進(jìn)行均一化處理,解決了在不同編碼環(huán)境下URL編碼結(jié)果不一致的問題,進(jìn)而保證了數(shù)字簽名與URL的編碼環(huán)境無關(guān);通過提供密鑰生成方法和數(shù)字簽名生成方法,從而在提升數(shù)字簽名兼容性的基礎(chǔ)上還能夠提升數(shù)字簽名的安全性;此外,本發(fā)明中對(duì)于待編碼字符串的均一化處理方法還能夠?yàn)榭缙脚_(tái)、跨語言使用URL編碼的相關(guān)應(yīng)用領(lǐng)域提供技術(shù)支持。
【專利說明】
一種提升兼容性的數(shù)字簽名生成方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,具體涉及一種提升兼容性的數(shù)字簽名生成方法及系 統(tǒng)。
【背景技術(shù)】
[0002] 數(shù)字簽名是對(duì)信息的發(fā)送者發(fā)送信息真實(shí)性的一個(gè)有效證明,具有完整性和不可 抵賴性,是網(wǎng)絡(luò)安全領(lǐng)域最為常用的一項(xiàng)維護(hù)網(wǎng)絡(luò)安全的技術(shù)。通常對(duì)原始數(shù)據(jù)進(jìn)行某種 運(yùn)算后,即可得到與原始值唯一對(duì)應(yīng)的數(shù)字簽名,數(shù)字簽名能夠有效地驗(yàn)證原始數(shù)據(jù)是否 被修改。
[0003] 在數(shù)據(jù)簽名生成過程中,通常需要用到URL編碼技術(shù),所謂URL編碼技術(shù)也被稱之 位百分號(hào)編碼,是指將指定的可見字符轉(zhuǎn)換為對(duì)應(yīng)的百分號(hào)編碼,以便數(shù)據(jù)傳輸使用時(shí)避 免有些字符引起的歧義。在各種開發(fā)語言中使用URL編碼技術(shù)得到的結(jié)果并不是完全相同, 因此在各語言的環(huán)境中使用URL編碼技術(shù)后,得到的數(shù)字簽名也不完全相同,從而引發(fā)關(guān)于 數(shù)字簽名的兼容性問題。
[0004] 以組(31'〇8〇;1^1:.呢1'平臺(tái)為例,這種開發(fā)環(huán)境的1]此編碼器111^口1]1:;[1;^7.1]1?1^11(3〇(16 會(huì)將字符'='編碼成' % 3d ',而不是符合國(guó)際標(biāo)準(zhǔn)RFC3986定義的% 3D,在這種開發(fā)環(huán)境下 直接獲得的URL編碼與國(guó)際標(biāo)準(zhǔn)不一致會(huì)導(dǎo)致數(shù)字簽名不能通過驗(yàn)證;
[0005] 以JAVA開發(fā)平臺(tái)為例,這種開發(fā)環(huán)境的URL編碼器java. net. URLEncoder對(duì)字符 不能編碼,由于國(guó)際標(biāo)準(zhǔn)中規(guī)定了 必須編碼,因此若需要進(jìn)行URL編碼的源字符串中 存在中"*",會(huì)導(dǎo)致生成的簽名不能通過驗(yàn)證;
[0006] 此外,某些語言的URL編碼方法會(huì)把"空格"編碼為"+",實(shí)際上國(guó)際標(biāo)準(zhǔn)中規(guī)定應(yīng) 該編碼為" % 20"。
[0007] 可見,不同的編碼環(huán)境造成了編碼結(jié)果的顯著差異,而編碼結(jié)果的一致性是保證 數(shù)字簽名的有效性和兼容性的前提,而目前現(xiàn)有技術(shù)中尚上不存在能夠圓滿自適應(yīng)地解決 數(shù)字簽名兼容性的技術(shù)方案。

【發(fā)明內(nèi)容】

[0008] 為了解決上述技術(shù)問題,本發(fā)明提出了一種提升兼容性的數(shù)字簽名生成方法及系 統(tǒng),通過對(duì)各種URL編碼環(huán)境進(jìn)行辨識(shí)和對(duì)于待編碼字符串進(jìn)行均一化處理,解決不同編碼 環(huán)境下URL編碼結(jié)果不一致的問題,從而保證數(shù)字簽名的兼容性。
[0009] 本發(fā)明是以如下技術(shù)方案實(shí)現(xiàn)的,一種提升兼容性的數(shù)字簽名生成方法,包括: [0010]根據(jù)源數(shù)據(jù)獲取與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串,所述統(tǒng)一URL編碼字符 串包括均一化子串,所述均一化子串由所述源數(shù)據(jù)中的元素進(jìn)行均一化編碼生成,所述均 一化子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL編碼環(huán)境無關(guān);
[0011]獲取密鑰,并根據(jù)所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰生成數(shù)字簽 名。
[0012] 優(yōu)選的,所述均一化編碼方法包括:
[0013] 對(duì)所述元素進(jìn)行編碼,生成在所述源數(shù)據(jù)的URL編碼環(huán)境下的URL編碼字符串; [0014]將所述URL編碼字符串中與所述URL編碼規(guī)范不兼容的字符替換為與所述URL編碼 規(guī)范兼容的字符,獲得與所述元素對(duì)應(yīng)的均一化子串。
[0015] 優(yōu)選的,所述源數(shù)據(jù)包括網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、URL路徑和參數(shù),所述根據(jù)所述 源數(shù)據(jù)獲取所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串包括:
[0016] 獲取第一字符串,所述第一字符串為與所述URL路徑對(duì)應(yīng)的均一化子串;
[0017] 獲取第二字符串,所述第二字符串為與所述參數(shù)對(duì)應(yīng)的均一化子串;
[0018] 將所述網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、所述第一字符串和所述第二字符串之間使用字符 "&"依次進(jìn)行連接,獲得與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串。
[0019] 優(yōu)選的,所述根據(jù)所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串和所述密鑰生成所述數(shù) 字簽名包括:
[0020] 獲取密鑰字符串,所述密鑰字符串由所述密鑰和拼接字符"&"構(gòu)成;
[0021] 將所述密鑰字符串和所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串分別作為散列函數(shù)的 參數(shù)進(jìn)行散列運(yùn)算,將運(yùn)算結(jié)果作為所述數(shù)字簽名。
[0022] 優(yōu)選的,所述密鑰的長(zhǎng)度為M,所述密鑰的生成方法包括:
[0023] 選擇參與構(gòu)建密鑰的字符和/或字符串;
[0024] 將所述字符和/或字符串進(jìn)行拼接,形成長(zhǎng)度為L(zhǎng)的目標(biāo)字符串;
[0025]每一次抽取一個(gè)目標(biāo)字符,共抽取Μ次;
[0026]將Μ個(gè)所述目標(biāo)字符依次拼接構(gòu)成密鑰。
[0027]優(yōu)選的,每一次抽取目標(biāo)字符均包括:
[0028] 隨機(jī)生成一個(gè)0到L-1之間的整數(shù)N,L為所述目標(biāo)字符串的長(zhǎng)度;
[0029] 將所述目標(biāo)字符串中的第N個(gè)位置的字符作為目標(biāo)字符。
[0030] 一種提升兼容性的數(shù)字簽名生成系統(tǒng),包括統(tǒng)一 URL編碼字符串獲取模塊、密鑰獲 取模塊和數(shù)字簽名獲取模塊,
[0031] 所述統(tǒng)一 URL編碼字符串獲取模塊用于根據(jù)源數(shù)據(jù)獲取所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串,所述統(tǒng)一URL編碼字符串包括均一化子串,所述均一化子串由所述源數(shù)據(jù) 中的元素進(jìn)行均一化編碼生成,所述均一化子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL 編碼環(huán)境無關(guān),
[0032] 所述密鑰獲取模塊用于獲取密鑰,
[0033] 所述數(shù)字簽名獲取模塊用于根據(jù)與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述 密鑰生成所述數(shù)字簽名。
[0034]優(yōu)選的,所述統(tǒng)一URL編碼字符串獲取模塊包括均一化子串獲取子模塊,所述均一 化子串獲取子模塊包括編碼單元和均一化處理單元,所述編碼單元用于對(duì)所述源數(shù)據(jù)的元 素進(jìn)行編碼,生成在所述源數(shù)據(jù)的URL編碼環(huán)境下的URL編碼字符串;所述均一化處理單元 用于將所述URL編碼字符串中與所述URL編碼規(guī)范不兼容的字符替換為與所述URL編碼規(guī)范 兼容的字符,獲得與所述元素對(duì)應(yīng)的均一化子串。
[0035]優(yōu)選的,所述源數(shù)據(jù)包括網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、URL路徑和參數(shù),所述統(tǒng)一URL編 碼字符串獲取模塊還包括第一字符串獲取子模塊、第二字符串獲取子模塊和統(tǒng)一 URL編碼 字符串生成子模塊,
[0036]所述第一字符串獲取子模塊用于獲取第一字符串,所述第一字符串為與所述URL 路徑對(duì)應(yīng)的均一化子串,所述第二字符串獲取子模塊用于獲取第二字符串,所述第二字符 串為與所述參數(shù)對(duì)應(yīng)的均一化子串,所述統(tǒng)一URL編碼字符串生成子模塊用于將所述網(wǎng)絡(luò) 請(qǐng)求中的請(qǐng)求方式、所述第一字符串和所述第二字符串之間使用字符"&"依次進(jìn)行連接,獲 得與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串。
[0037]優(yōu)選的,所述數(shù)字簽名獲取模塊包括密鑰字符串獲取子模塊和數(shù)字簽名生成子模 塊,
[0038]所述密鑰字符串獲取子模塊用于將所述密鑰和字符"&"拼接構(gòu)成密鑰字符串,所 述數(shù)字簽名生成子模塊用于將所述密鑰字符串和所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串分 別作為散列函數(shù)的參數(shù)進(jìn)行散列運(yùn)算并將運(yùn)算結(jié)果作為所述數(shù)字簽名。
[0039]優(yōu)選的,所述密鑰獲取模塊包括選擇子模塊、拼接子模塊、目標(biāo)字符抽取子模塊和 密鑰生成子模塊,
[0040] 所述選擇子模塊用于選擇參與構(gòu)建密鑰的字符和/或字符串,所述拼接子模塊用 于將所述字符和/或字符串進(jìn)行拼接,形成長(zhǎng)度為L(zhǎng)的目標(biāo)字符串,所述目標(biāo)字符抽取子模 塊用于從所述目標(biāo)字符串中抽取目標(biāo)字符,每一次抽取一個(gè)目標(biāo)字符,共抽取Μ次,所述密 鑰生成子模塊用于依次拼接Μ個(gè)所述目標(biāo)字符構(gòu)成密鑰。
[0041] 本發(fā)明的有益效果是:
[0042]本發(fā)明提出了一種提升兼容性的數(shù)字簽名生成方法及系統(tǒng),通過對(duì)各種URL編碼 環(huán)境的辨識(shí)和對(duì)于待編碼字符串進(jìn)行均一化處理,解決不同編碼環(huán)境下URL編碼結(jié)果不一 致的問題,從而保證數(shù)字簽名的兼容性,本發(fā)明還提供了密鑰生成方法和數(shù)字簽名生成方 法,從而在提升數(shù)字簽名兼容性的基礎(chǔ)上還能夠提升數(shù)字簽名的安全性。此外,本發(fā)明中對(duì) 于待編碼字符串的均一化處理方法還能夠?yàn)榭缙脚_(tái)、跨語言使用URL編碼的相關(guān)應(yīng)用領(lǐng)域 提供技術(shù)支持。
【附圖說明】
[0043] 圖1是實(shí)施例1中提供的提升兼容性的數(shù)字簽名生成方法流程圖;
[0044] 圖2是實(shí)施例2中提供的均一化編碼方法流程圖;
[0045] 圖3是實(shí)施例2中提供的統(tǒng)一 URL編碼字符串獲取方法流程圖;
[0046] 圖4是實(shí)施例3中提供的密鑰獲取方法流程圖;
[0047] 圖5是實(shí)施例3中提供的數(shù)字簽名獲取方法流程圖;
[0048] 圖6是實(shí)施例4中提供的提升數(shù)字簽名兼容性的系統(tǒng)示意圖;
[0049] 圖7是實(shí)施例4中提供的統(tǒng)一 URL獲取模塊示意圖;
[0050] 圖8是實(shí)施例4中提供的數(shù)字簽名獲取模塊示意圖;
[0051 ]圖9是實(shí)施例4中提供的密鑰獲取模塊示意圖。
[0052] 具體實(shí)施方法
[0053]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一 步地詳細(xì)描述。
[0054]對(duì)于數(shù)字簽名而言,相同源數(shù)據(jù)應(yīng)保證得到相同的數(shù)字簽名結(jié)果,而現(xiàn)有技術(shù)中, 相同源數(shù)據(jù)因 URL編碼環(huán)境的不同而產(chǎn)生差異,這種差異最終會(huì)引起數(shù)字簽名結(jié)果的不一 致,不僅造成了數(shù)據(jù)簽名生成方和數(shù)據(jù)簽名驗(yàn)證方的資源損耗,還嚴(yán)重影響了數(shù)字簽名跨 平臺(tái)的性能,制約了數(shù)字簽名的發(fā)展。鑒于現(xiàn)有技術(shù)中尚不存在完全符合國(guó)際標(biāo)準(zhǔn)的URL編 碼的方法,也沒有能夠?yàn)楦鞣N開發(fā)環(huán)境URL編碼進(jìn)行均一化處理的方法,本發(fā)明提供了能夠 生成完全符合國(guó)際標(biāo)準(zhǔn)的URL編碼的方法,填補(bǔ)了現(xiàn)有技術(shù)的空缺,同時(shí)提供了提升數(shù)字簽 名安全性和兼容性的方法。
[0055] 實(shí)施例1:
[0056] -種提升兼容性的數(shù)字簽名生成方法,如圖1所示,包括:
[0057] S101.根據(jù)源數(shù)據(jù)獲取與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串,所述統(tǒng)一URL編 碼字符串包括均一化子串,所述均一化子串由所述源數(shù)據(jù)中的元素進(jìn)行均一化編碼生成, 所述均一化子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL編碼環(huán)境無關(guān);
[0058] S102.獲取密鑰,并根據(jù)與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰生成 數(shù)字簽名。
[0059]本實(shí)施例通過使用具有平臺(tái)無關(guān)性的均一化子串構(gòu)建出了統(tǒng)一URL編碼字符串, 從而保證了數(shù)字簽名的兼容性。
[0060] 實(shí)施例2:
[0061 ] -種提升兼容性的數(shù)字簽名生成方法,包括:
[0062] S201.根據(jù)源數(shù)據(jù)獲取與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串,所述統(tǒng)一URL編 碼字符串包括均一化子串,所述均一化子串由所述源數(shù)據(jù)中的元素進(jìn)行均一化編碼生成, 所述均一化子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL編碼環(huán)境無關(guān)。
[0063] 所述均一化編碼方法如圖2所示,包括:
[0064]對(duì)所述元素進(jìn)行編碼,生成在所述源數(shù)據(jù)的URL編碼環(huán)境下的URL編碼字符串,所 述編碼環(huán)境包括所述源數(shù)據(jù)所在程序使用的語言以及編碼所用的具體函數(shù)。
[0065]根據(jù)表1將所述URL編碼字符串中與所述URL編碼規(guī)范不兼容的字符替換為與所述 URL編碼規(guī)范兼容的字符,從而獲得與所述元素對(duì)應(yīng)的均一化子串。表1中列出了對(duì)于部分 可見字符的編碼結(jié)果,其中陰影部分為各個(gè)編碼環(huán)境下編碼得到的編碼結(jié)果與本實(shí)施例中 均一化子串中的編碼結(jié)果的差異部分,根據(jù)差異部分進(jìn)行替換能夠顯著節(jié)省替換操作的時(shí) 間。
[0066] 表1可見字符編碼表
[0067]
[0068]
[0069] 因?yàn)榭梢娮址赨RL編碼規(guī)范中被分成保留字符與未保留字符兩類。保留字符是 具有特殊含義的字符,無特殊含義的字符可以不被轉(zhuǎn)碼,本實(shí)施例中也不對(duì)無特殊含義的 可見字符進(jìn)行編碼,以節(jié)省編碼成本。
[0070] 所述源數(shù)據(jù)包括網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、URL路徑和參數(shù),所述根據(jù)源數(shù)據(jù)獲取與 所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串如圖3所示,包括:
[0071] S2011.獲取第一字符串,所述第一字符串為與所述URL路徑對(duì)應(yīng)的均一化子串,所 述URL路徑對(duì)應(yīng)的均一化子串表示為fn (path);
[0072] S2012.獲取第二字符串,所述第二字符串為與所述參數(shù)對(duì)應(yīng)的均一化子串,所述 參數(shù)對(duì)應(yīng)的均一化子串表示為fn(paras);
[0073] S2013.將所述網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、所述第一字符串和所述第二字符串之間使 用字符"&"依次進(jìn)行連接,獲得與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串,與所述源數(shù)據(jù)對(duì) 應(yīng)的統(tǒng)一1]此編碼字符串表示為11161:110(1+〃&〃+;1^11(。31:11) + 〃&〃+;1^11(。3瓜8)。
[0074] S202.獲取密鑰,并根據(jù)與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰生成 數(shù)字簽名。
[0075] 本實(shí)施例確定了編碼結(jié)果與國(guó)際標(biāo)準(zhǔn)有出入的特殊字符,通過對(duì)所述特殊字符的 處理實(shí)現(xiàn)了編碼結(jié)果的均一化,從而保證了數(shù)字簽名的兼容性。本實(shí)施例提供的方法還能 夠?yàn)榭缙脚_(tái)、跨語言使用URL編碼的相關(guān)應(yīng)用領(lǐng)域提供技術(shù)支持。
[0076] 實(shí)施例3:
[0077] -種提升兼容性的數(shù)字簽名生成方法,包括:
[0078] S301.根據(jù)源數(shù)據(jù)獲取與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串,所述統(tǒng)一URL編 碼字符串包括均一化子串,所述均一化子串由所述源數(shù)據(jù)中的元素進(jìn)行均一化編碼生成, 所述均一化子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL編碼環(huán)境無關(guān)。
[0079]所述均一化編碼方法包括:
[0080]對(duì)所述元素進(jìn)行編碼,生成在所述源數(shù)據(jù)的URL編碼環(huán)境下的URL編碼字符串,所 述編碼環(huán)境包括所述源數(shù)據(jù)所在程序使用的語言以及編碼所用的具體函數(shù)。
[0081 ]按照實(shí)施例2中表1將所述URL編碼字符串中與所述URL編碼規(guī)范不兼容的字符替 換為與所述URL編碼規(guī)范兼容的字符,獲得與所述兀素對(duì)應(yīng)的均一化子串。
[0082]所述源數(shù)據(jù)包括網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、URL路徑和參數(shù),所述根據(jù)所述源數(shù)據(jù)獲 取所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串包括:
[0083] S3011.獲取第一字符串,所述第一字符串為所述網(wǎng)絡(luò)請(qǐng)求中的URL路徑對(duì)應(yīng)的統(tǒng) 一 URL編碼字符串;
[0084] S3012.獲取第二字符串,所述第二字符串為與所述參數(shù)對(duì)應(yīng)的均一化子串;
[0085] S3013.將所述網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、所述第一字符串和所述第二字符串之間使 用字符"&"依次進(jìn)行連接,獲得與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串。
[0086] S302.根據(jù)所述源數(shù)據(jù)獲取密鑰。
[0087]所述密鑰的長(zhǎng)度為Μ,所述密鑰的生成方法如圖4所示,包括:
[0088] S3021.選擇參與構(gòu)建密鑰的字符和/或字符串。
[0089] S3022.將所述字符和/或字符串進(jìn)行拼接,形成長(zhǎng)度為L(zhǎng)的目標(biāo)字符串S。
[0090]選擇參與密鑰構(gòu)建的字符和/或字符串,可以是大小寫字母,數(shù)字,標(biāo)點(diǎn),相互進(jìn)行 拼接的過程與順序無關(guān),結(jié)果是形成一個(gè)長(zhǎng)度為L(zhǎng)的完整的目標(biāo)字符串S。以L= 16為例,S可 以為"D56}\| ; ',EdefF23"。
[0091 ] S3023.每一次抽取一個(gè)目標(biāo)字符,共抽取Μ次。每一次抽取目標(biāo)字符均包括:
[0092] 隨機(jī)生成一個(gè)0到L-1之間的整數(shù)N,L為所述目標(biāo)字符串的長(zhǎng)度。生成Ν的公式為:Ν =Math.random()*100 %L〇
[0093] 將所述目標(biāo)字符串中的第N個(gè)位置的字符作為目標(biāo)字符。
[0094] S3024.依次拼接所述Μ個(gè)目標(biāo)字符構(gòu)成密鑰。
[0095] S303.根據(jù)與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰生成數(shù)字簽名。
[0096]具體地,根據(jù)與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰生成所述數(shù)字 簽名的步驟如圖5所示,包括:
[0097] S3031.獲取密鑰字符串,所述密鑰字符串由在所述密鑰后拼接字符"&"構(gòu)成。設(shè)所 述密鑰為字符串A,則所述密鑰字符串即為A&。
[0098] S3032.將所述密鑰字符串和所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串分別作為散列 函數(shù)的參數(shù)進(jìn)行散列運(yùn)算并將運(yùn)算結(jié)果作為所述數(shù)字簽名。
[0099] 設(shè)數(shù)字簽名為sig,所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串為D,則sig = hmac_shal (D,A&)〇
[0100] 本實(shí)施例在對(duì)于源數(shù)據(jù)中的元素進(jìn)行均一化處理從而保證了數(shù)字簽名的兼容性 的基礎(chǔ)之上,進(jìn)一步提供了密鑰和數(shù)字簽名的算法,從而提升了數(shù)字簽名的安全性。
[0101] 實(shí)施例4:
[0102] -種提升兼容性的數(shù)字簽名生成系統(tǒng),如圖6所示,包括:
[0103] 統(tǒng)一URL編碼字符串獲取模塊601,用于根據(jù)源數(shù)據(jù)獲取所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串,所述統(tǒng)一URL編碼字符串包括均一化子串,所述均一化子串由所述源數(shù)據(jù) 中的元素進(jìn)行均一化編碼生成,所述均一化子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL 編碼環(huán)境無關(guān);
[0104] 密鑰獲取模塊602,用于獲取密鑰;
[0105]數(shù)字簽名獲取模塊603,用于根據(jù)與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述 密鑰生成所述數(shù)字簽名。
[0106] 具體地,所述統(tǒng)一 URL編碼字符串獲取模塊601如圖7所示,包括:
[0107] 均一化子串獲取子模塊6011,用于進(jìn)行均一化編碼,所述均一化子串獲取子模塊 6011包括:
[0108] 編碼單元,用于對(duì)所述源數(shù)據(jù)的元素進(jìn)行編碼,生成在所述源數(shù)據(jù)的URL編碼環(huán)境 下的URL編碼字符串;
[0109] 均一化處理單元,所述均一化處理單元用于將所述URL編碼字符串中與所述URL編 碼規(guī)范不兼容的字符替換為與所述URL編碼規(guī)范兼容的字符,獲得與所述元素對(duì)應(yīng)的均一 化子串。
[0110]具體地,所述源數(shù)據(jù)包括網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、URL路徑和參數(shù)三個(gè)元素,所述 統(tǒng)一 URL編碼字符串獲取模塊601還包括:
[0111] 第一字符串獲取子模塊6012,用于獲取第一字符串,所述第一字符串為與所述URL 路徑對(duì)應(yīng)的均一化子串。
[0112] 第二字符串獲取子模塊6013,用于獲取第二字符串,所述第二字符串為與所述參 數(shù)對(duì)應(yīng)的均一化子串。
[0113] 統(tǒng)一 URL編碼字符串生成子模塊6014,用于將所述網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、所述第 一字符串和所述第二字符串之間使用字符"&"依次進(jìn)行連接,獲得與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng) 一 URL編碼字符串。
[0114]具體地,所述第一字符串獲取子模塊6012通過調(diào)用均一化子串獲取子模塊6011獲 得第一字符串并將所述第一字符串傳輸至所述統(tǒng)一 URL編碼字符串生成子模塊6014;所述 第二字符串獲取子模塊6013通過調(diào)用均一化子串獲取子模塊6011獲得第二字符串并將所 述第二字符串傳輸至所述統(tǒng)一 URL編碼字符串生成子模塊6014。
[0115] 具體地,如圖8所示,所述數(shù)字簽名獲取模塊603包括:
[0116] 密鑰字符串獲取子模塊6031,用于將所述密鑰和字符"&"拼接構(gòu)成密鑰字符串;
[0117] 數(shù)字簽名生成子模塊6032,用于將所述密鑰字符串和所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL 編碼字符串分別作為散列函數(shù)的參數(shù)進(jìn)行散列運(yùn)算并將運(yùn)算結(jié)果作為所述數(shù)字簽名。
[0118] 具體地,如圖9所示,所述密鑰獲取模塊602包括:
[0119] 選擇子模塊6021,用于選擇參與構(gòu)建密鑰的字符和/或字符串;
[0120] 拼接子模塊6022,用于將所述字符和/或字符串進(jìn)行拼接,形成長(zhǎng)度為L(zhǎng)的目標(biāo)字 符串;
[0121]目標(biāo)字符抽取子模塊6023,用于從所述目標(biāo)字符串中抽取目標(biāo)字符,每一次抽取 一個(gè)目標(biāo)字符,共抽取犯欠;
[0122] 密鑰生成子模塊6024,用于依次拼接Μ個(gè)所述目標(biāo)字符構(gòu)成密鑰。
[0123] 本實(shí)施例提供的一種提升兼容性的數(shù)字簽名生成系統(tǒng),解決了不同編碼環(huán)境下 URL編碼結(jié)果不一致的問題,從而保證數(shù)字簽名的兼容性,通過提供了密鑰獲取模塊和數(shù)字 簽名獲取模塊,從而在提升數(shù)字簽名兼容性的基礎(chǔ)上還能夠提升數(shù)字簽名的安全性。此外, 本實(shí)施例提供的裝置還能夠?yàn)榭缙脚_(tái)、跨語言使用URL編碼的相關(guān)應(yīng)用領(lǐng)域提供技術(shù)支持。
[0124] 本發(fā)明的技術(shù)方案通過計(jì)算機(jī)終端實(shí)現(xiàn),該計(jì)算機(jī)終端可以是計(jì)算機(jī)終端群中的 任意一個(gè)或多個(gè)計(jì)算機(jī)終端設(shè)備??蛇x地,上述計(jì)算機(jī)終端也可以替換為移動(dòng)終端等終端 設(shè)備。
[0125] 所述計(jì)算機(jī)終端包括處理器和存儲(chǔ)器。所述存儲(chǔ)器用于存儲(chǔ)本發(fā)明中的提升兼容 性的數(shù)字簽名生成系統(tǒng)中的程序指令/模塊,所述處理器通過運(yùn)行存儲(chǔ)在存儲(chǔ)器內(nèi)的程序 指令/模塊,生成上述的提升兼容性的數(shù)字簽名。
[0126] 本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的 全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在存儲(chǔ)介質(zhì)中,包括 若干指令用以使得一臺(tái)或多臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行 本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。
[0127] 在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有 詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
[0128] 在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,以上所描述的裝置實(shí)施例僅僅是 示意性的,例如所述模塊/單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外 的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以 忽略,或不執(zhí)行??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊/單元來達(dá)到實(shí)現(xiàn)本發(fā) 明方案的目的。
[0129] 另外,在本發(fā)明各個(gè)實(shí)施例中的各模塊/單元可以集成在一個(gè)處理單元中,也可以 是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單 元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0130] 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種提升兼容性的數(shù)字簽名生成方法,其特征在于,包括: 根據(jù)源數(shù)據(jù)獲取與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一URL編碼字符串,所述統(tǒng)一URL編碼字符串包 括均一化子串,所述均一化子串由所述源數(shù)據(jù)中的元素進(jìn)行均一化編碼生成,所述均一化 子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL編碼環(huán)境無關(guān); 獲取密鑰,并根據(jù)所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰生成數(shù)字簽名。2. 根據(jù)權(quán)利要求1所述的一種提升兼容性的數(shù)字簽名生成方法,其特征在于,所述均一 化編碼包括: 對(duì)所述元素進(jìn)行編碼,生成在所述源數(shù)據(jù)的URL編碼環(huán)境下的URL編碼字符串; 將所述URL編碼字符串中與所述URL編碼規(guī)范不兼容的字符替換為與所述URL編碼規(guī)范 兼容的字符,獲得與所述元素對(duì)應(yīng)的均一化子串。3. 根據(jù)權(quán)利要求2所述的一種提升兼容性的數(shù)字簽名生成方法,其特征在于,所述源數(shù) 據(jù)包括網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、URL路徑和參數(shù),所述根據(jù)所述源數(shù)據(jù)獲取所述源數(shù)據(jù)對(duì)應(yīng) 的統(tǒng)一URL編碼字符串包括: 獲取第一字符串,所述第一字符串為與所述URL路徑對(duì)應(yīng)的均一化子串; 獲取第二字符串,所述第二字符串為與所述參數(shù)對(duì)應(yīng)的均一化子串; 將所述網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、所述第一字符串和所述第二字符串之間使用字符"&" 依次進(jìn)行連接,獲得與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串。4. 根據(jù)權(quán)利要求3所述的一種提升兼容性的數(shù)字簽名生成方法,其特征在于,所述根據(jù) 所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰生成所述數(shù)字簽名包括: 獲取密鑰字符串,所述密鑰字符串由所述密鑰和拼接字符"&"構(gòu)成; 將所述密鑰字符串和所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串分別作為散列函數(shù)的參數(shù) 進(jìn)行散列運(yùn)算,將運(yùn)算結(jié)果作為所述數(shù)字簽名。5. 根據(jù)權(quán)利要求1所述的一種提升兼容性的數(shù)字簽名生成方法,其特征在于,所述密鑰 的長(zhǎng)度為M,所述密鑰的生成方法包括: 選擇參與構(gòu)建密鑰的字符和/或字符串; 將所述字符和/或字符串進(jìn)行拼接,形成長(zhǎng)度為L(zhǎng)的目標(biāo)字符串; 每一次抽取一個(gè)目標(biāo)字符,共抽取M次; 將M個(gè)所述目標(biāo)字符依次拼接構(gòu)成密鑰。6. 根據(jù)權(quán)利要求5中所述的一種提升兼容性的數(shù)字簽名生成方法,其特征在于,每一次 抽取目標(biāo)字符均包括: 隨機(jī)生成一個(gè)O到L-I之間的整數(shù)N,L為所述目標(biāo)字符串的長(zhǎng)度; 將所述目標(biāo)字符串中的第N個(gè)位置的字符作為目標(biāo)字符。7. -種提升兼容性的數(shù)字簽名生成系統(tǒng),其特征在于,包括統(tǒng)一 URL編碼字符串獲取模 塊、密鑰獲取模塊和數(shù)字簽名獲取模塊, 所述統(tǒng)一 URL編碼字符串獲取模塊用于根據(jù)源數(shù)據(jù)獲取所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編 碼字符串,所述統(tǒng)一URL編碼字符串包括均一化子串,所述均一化子串由所述源數(shù)據(jù)中的元 素進(jìn)行均一化編碼生成,所述均一化子串符合URL編碼規(guī)范并且與所述源數(shù)據(jù)的URL編碼環(huán) 境無關(guān), 所述密鑰獲取模塊用于獲取密鑰, 所述數(shù)字簽名獲取模塊用于根據(jù)與所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串和所述密鑰 生成所述數(shù)字簽名。8. 根據(jù)權(quán)利要求7所述的一種提升兼容性的數(shù)字簽名生成系統(tǒng),其特征在于,所述統(tǒng)一 URL編碼字符串獲取模塊包括均一化子串獲取子模塊,所述均一化子串獲取子模塊包括編 碼單元和均一化處理單元,所述編碼單元用于對(duì)所述源數(shù)據(jù)的元素進(jìn)行編碼,生成在所述 源數(shù)據(jù)的URL編碼環(huán)境下的URL編碼字符串;所述均一化處理單元用于將所述URL編碼字符 串中與所述URL編碼規(guī)范不兼容的字符替換為與所述URL編碼規(guī)范兼容的字符,獲得與所述 元素對(duì)應(yīng)的均一化子串。9. 根據(jù)權(quán)利要求8所述一種提升兼容性的數(shù)字簽名生成系統(tǒng),其特征在于,所述源數(shù)據(jù) 包括網(wǎng)絡(luò)請(qǐng)求中的請(qǐng)求方式、URL路徑和參數(shù),所述統(tǒng)一 URL編碼字符串獲取模塊還包括第 一字符串獲取子模塊、第二字符串獲取子模塊和統(tǒng)一 URL編碼字符串生成子模塊, 所述第一字符串獲取子模塊用于獲取第一字符串,所述第一字符串為與所述URL路徑 對(duì)應(yīng)的均一化子串,所述第二字符串獲取子模塊用于獲取第二字符串,所述第二字符串為 與所述參數(shù)對(duì)應(yīng)的均一化子串,所述統(tǒng)一URL編碼字符串生成子模塊用于將所述網(wǎng)絡(luò)請(qǐng)求 中的請(qǐng)求方式、所述第一字符串和所述第二字符串之間使用字符"&"依次進(jìn)行連接,獲得與 所述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串。10. 根據(jù)權(quán)利要求9所述一種提升兼容性的數(shù)字簽名生成系統(tǒng),其特征在于,所述數(shù)字 簽名獲取模塊包括密鑰字符串獲取子模塊和數(shù)字簽名生成子模塊, 所述密鑰字符串獲取子模塊用于將所述密鑰和字符"&"拼接構(gòu)成密鑰字符串,所述數(shù) 字簽名生成子模塊用于將所述密鑰字符串和所與述源數(shù)據(jù)對(duì)應(yīng)的統(tǒng)一 URL編碼字符串分別 作為散列函數(shù)的參數(shù)進(jìn)行散列運(yùn)算并將運(yùn)算結(jié)果作為所述數(shù)字簽名。11. 根據(jù)權(quán)利要求7所述一種提升兼容性的數(shù)字簽名生成系統(tǒng),其特征在于,所述密鑰 獲取模塊包括選擇子模塊、拼接子模塊、目標(biāo)字符抽取子模塊和密鑰生成子模塊, 所述選擇子模塊用于選擇參與構(gòu)建密鑰的字符和/或字符串,所述拼接子模塊用于將 所述字符和/或字符串進(jìn)行拼接,形成長(zhǎng)度為L(zhǎng)的目標(biāo)字符串,所述目標(biāo)字符抽取子模塊用 于從所述目標(biāo)字符串中抽取目標(biāo)字符,每一次抽取一個(gè)目標(biāo)字符,共抽取M次,所述密鑰生 成子模塊用于依次拼接M個(gè)所述目標(biāo)字符構(gòu)成密鑰。
【文檔編號(hào)】H04L9/32GK105897415SQ201610395257
【公開日】2016年8月24日
【申請(qǐng)日】2016年6月6日
【發(fā)明人】龍付成
【申請(qǐng)人】騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1