本發(fā)明實(shí)施例涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種插件簽名的方法及電子設(shè)備。
背景技術(shù):
隨著科學(xué)技術(shù)的不斷進(jìn)步,電子設(shè)備也得到了飛速的發(fā)展,許多電子設(shè)備,如智能手機(jī)、平板電腦、電腦等,成為了人們?nèi)粘I畹谋匦杵?,用?hù)可通過(guò)上述電子設(shè)備進(jìn)行信息分享以及應(yīng)用體驗(yàn)。
在現(xiàn)有技術(shù)中,為了能夠提供給用戶(hù)多種服務(wù),通常一個(gè)應(yīng)用軟件中會(huì)設(shè)置有插件,當(dāng)用戶(hù)需要使用插件功能時(shí),則直接調(diào)用插件的程序包,無(wú)需再安裝相應(yīng)的應(yīng)用程序,方便用戶(hù)使用。如,微信應(yīng)用程序中設(shè)置有滴滴出行的插件,這樣,用戶(hù)不用再下載滴滴出行應(yīng)用程序,直接使用微信應(yīng)用程序也能實(shí)現(xiàn)預(yù)約出租車(chē)的功能。
本申請(qǐng)發(fā)明人在實(shí)現(xiàn)本發(fā)明實(shí)施例中技術(shù)方案的過(guò)程中,發(fā)現(xiàn)上述技術(shù)至少存在如下技術(shù)問(wèn)題:
由于插件可以不需要安裝便直接使用,因此,當(dāng)應(yīng)用程序中嵌入惡意插件時(shí),會(huì)導(dǎo)致使用該應(yīng)用程序的用戶(hù)的信息泄露等安全性問(wèn)題,所以,現(xiàn)有技術(shù)中不需要安裝的插件存在安全性低的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種插件簽名的方法及電子設(shè)備,用以解決現(xiàn)有技術(shù)中不需要安裝的插件存在的安全性低的技術(shù)問(wèn)題,實(shí)現(xiàn)提高插件的安全性,保障用戶(hù)的信息安全的技術(shù)效果。
本發(fā)明實(shí)施例提供一種插件簽名的方法,包括:
獲取第一插件的程序包,其中,所述第一插件為通過(guò)直接調(diào)用所述程序包來(lái)實(shí)現(xiàn)與所述第一插件對(duì)應(yīng)的服務(wù)的插件;
獲取簽名文件,其中,所述簽名文件為用于對(duì)所述第一插件進(jìn)行簽名的文件;
基于所述簽名文件,對(duì)所述第一插件進(jìn)行簽名,生成經(jīng)簽名的第一插件程序包。
本發(fā)明實(shí)施例提供一種電子設(shè)備,包括:
第一獲取單元,用于獲取第一插件的程序包,其中,所述第一插件為通過(guò)直接調(diào)用所述程序包來(lái)實(shí)現(xiàn)與所述第一插件對(duì)應(yīng)的服務(wù)的插件;
第二獲取單元,用于獲取簽名文件,其中,所述簽名文件為用于對(duì)所述第一插件進(jìn)行簽名的文件;
第一執(zhí)行單元,用于基于所述簽名文件,對(duì)所述第一插件進(jìn)行簽名,生成經(jīng)簽名的第一插件程序包。
本發(fā)明實(shí)施例提供的插件簽名方法及電子設(shè)備,通過(guò)獲取第一插件的程序包,其中,所述第一插件為通過(guò)直接調(diào)用所述程序包來(lái)實(shí)現(xiàn)與所述第一插件對(duì)應(yīng)的服務(wù)的插件;獲取簽名文件,其中,所述簽名文件為用于對(duì)所述第一插件進(jìn)行簽名的文件;基于所述簽名文件,對(duì)所述第一插件進(jìn)行簽名,生成經(jīng)簽名的第一插件程序包的方法,這樣,將不需要安裝便能使用的插件也進(jìn)行簽名,當(dāng)有其他應(yīng)用程序要調(diào)用所述插件的程序時(shí),便能自動(dòng)基于簽名信息對(duì)所述插件的安全性進(jìn)行驗(yàn)證,當(dāng)發(fā)現(xiàn)是惡意插件時(shí)則不使用,從而解決了現(xiàn)有技術(shù)中不需要安裝的插件存在的安全性低的技術(shù)問(wèn)題,實(shí)現(xiàn)提高插件的安全性,保障用戶(hù)的信息安全的技術(shù)效果。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一中提供的一種插件簽名的方法的流程圖;
圖2為本發(fā)明實(shí)施例二中提供的一種電子設(shè)備的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
請(qǐng)參考圖1,為本申請(qǐng)實(shí)施例一中提供的一種插件簽名的方法的流程圖,所述方法包括:
S101:獲取第一插件的程序包,其中,所述第一插件為通過(guò)直接調(diào)用所述程序包來(lái)實(shí)現(xiàn)與所述第一插件對(duì)應(yīng)的服務(wù)的插件;
S102:獲取簽名文件,其中,所述簽名文件為用于對(duì)所述第一插件進(jìn)行簽名的文件;
S103:基于所述簽名文件,對(duì)所述第一插件進(jìn)行簽名,生成經(jīng)簽名的第一插件程序包。
在具體實(shí)施過(guò)程中,所述方法可以應(yīng)用在包含有插件編輯工具的智能手機(jī)、智能電視、平板電腦、個(gè)人電腦,當(dāng)然,也可以是其他能夠編輯插件的電子設(shè)備,在此,就不一一舉例了。所述插件編輯工具可以是軟件開(kāi)發(fā)包SDK(Software Development Kit)、Eclipse ADT或者Ant等,在本申請(qǐng)實(shí)施例中不作限制。
插件是一種遵循一定規(guī)范的應(yīng)用程序接口編寫(xiě)出來(lái)的程序,其只能運(yùn)行在程序規(guī)定的系統(tǒng)平臺(tái)下(可能同時(shí)支持多個(gè)平臺(tái)),而不能脫離指定的平臺(tái)單獨(dú)運(yùn)行,因?yàn)椴寮枰{(diào)用原純凈系統(tǒng)提供的函數(shù)庫(kù)或者數(shù)據(jù)。很多軟件都有插件,插件有無(wú)數(shù)種。例如在IE中,WEB瀏覽器能夠直接調(diào)用插件程序,用于處理特定類(lèi)型的文件。插件的定位是開(kāi)發(fā)實(shí)現(xiàn)原純凈系統(tǒng)平臺(tái)、應(yīng)用軟件平臺(tái)不具備的功能的程序。
軟件開(kāi)發(fā)包SDK、Eclipse ADT或者Ant是用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開(kāi)發(fā)工具的集合,以供研發(fā)人員寫(xiě)入具體的代碼項(xiàng)目,并對(duì)代碼項(xiàng)目進(jìn)行編譯、打包、測(cè)試等。
在采用本申請(qǐng)實(shí)施例中的方法進(jìn)行插件簽名時(shí),首先執(zhí)行步驟S101,即:獲取第一插件的程序包,其中,所述第一插件為通過(guò)直接調(diào)用所述程序包來(lái)實(shí)現(xiàn)與所述第一插件對(duì)應(yīng)的服務(wù)的插件。
在具體實(shí)施過(guò)程中,以所述插件編輯工具為軟件開(kāi)發(fā)包SDK為例,研發(fā)人員通過(guò)軟件開(kāi)發(fā)包SDK編譯出了一個(gè)能夠提供某種服務(wù)且無(wú)需安裝便可以直接調(diào)用的插件程序包,如應(yīng)用程序A的購(gòu)物插件,此時(shí),軟件開(kāi)發(fā)包SDK便獲取了應(yīng)用程序A的購(gòu)物插件程序包。
在執(zhí)行完成步驟S101之后,本申請(qǐng)實(shí)施例中的方法便執(zhí)行步驟S102,即:獲取簽名文件,其中,所述簽名文件為用于對(duì)所述第一插件進(jìn)行簽名的文件。
在本申請(qǐng)實(shí)施例中,所述簽名文件包括用于計(jì)算簽名信息的哈希函數(shù)以及用于對(duì)所述簽名信息進(jìn)行加密的私鑰,相應(yīng)地,步驟S102的具體實(shí)現(xiàn)方式有如下兩種方式:
第一種方式,步驟S102包括:
獲取軟件開(kāi)發(fā)包SDK中的預(yù)設(shè)簽名文件為所述簽名文件;
在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)使用軟件開(kāi)發(fā)包SDK給應(yīng)用程序A的購(gòu)物插件進(jìn)行簽名時(shí),軟件開(kāi)發(fā)包SDK提供了一種Debug模式,當(dāng)使用Debug模式編譯應(yīng)用程序A的購(gòu)物插件時(shí),軟件開(kāi)發(fā)包SDK會(huì)調(diào)用Keytool工具自動(dòng)創(chuàng)建keystore和key,如Keystore名字:“debug.keysotre”;Keystore密碼:“plugin”;Key別名:“plugindebugkey”;Key密碼:“plugin”CN:“CN=Plugin Debug,O=Plugin,C=US”。研發(fā)人員可以根據(jù)實(shí)際使用需求改變Debug keystore/key的位置和名字,或者提供一個(gè)自定義的Debug keysotre/key,在本申請(qǐng)實(shí)施例中不作限制。然而,任何自定義的Debug keystore/key必須使用和默認(rèn)Debug key相同的名字和密碼。
同時(shí),軟件開(kāi)發(fā)包SDK中還預(yù)存有用于對(duì)應(yīng)用程序A的購(gòu)物插件進(jìn)行簽名的哈希函數(shù),即一種將任意長(zhǎng)度的消息壓縮到某一固定長(zhǎng)度的消息摘要的函數(shù)。常用的哈希函數(shù)為MD4(Message Digest)、MD5、SHA1等,其中,MD4是基于32位操作數(shù)的位操作來(lái)實(shí)現(xiàn)的;MD5對(duì)輸入仍以512位分組,其輸出是4個(gè)32位字的級(jí)聯(lián),與MD4相同,較MD4復(fù)雜,但更安全,在抗分析和抗差分方面表現(xiàn)更好;SHA1是同DSA一起使用的,它對(duì)長(zhǎng)度小于2^64位的輸入,產(chǎn)生長(zhǎng)度為160bit的散列值,因此抗窮舉性更好。本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際使用需求進(jìn)行選擇,在本申請(qǐng)實(shí)施例中不作限制。
軟件開(kāi)發(fā)包SDK自動(dòng)創(chuàng)建keystore/key,并獲取預(yù)存的哈希函數(shù)即獲取了對(duì)應(yīng)用程序A的購(gòu)物插件進(jìn)行簽名的簽名文件。
第二種方式,步驟S102包括:
運(yùn)行密鑰工具Keytool命令;
接收由輸入單元發(fā)送的與所述密鑰工具Keytool命令對(duì)應(yīng)的參數(shù)值;
基于所述參數(shù)值,生成并獲取所述簽名文件。
在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)研發(fā)人員不使用軟件開(kāi)發(fā)包SDK自動(dòng)創(chuàng)建的Debug key進(jìn)行簽名時(shí),便需要使用Keytool工具來(lái)生成簽名文件。keytool是個(gè)密鑰和證書(shū)管理工具,它使用戶(hù)能夠管理自己的公鑰/私鑰對(duì)及相關(guān)證書(shū),用于(通過(guò)數(shù)字簽名)自我認(rèn)證(用戶(hù)向別的用戶(hù)/服務(wù)認(rèn)證自己)或數(shù)據(jù)完整性以及認(rèn)證服務(wù),同時(shí),還允許用戶(hù)儲(chǔ)存他們的通信對(duì)等者的公鑰。在生成簽名文件時(shí),使用keytool命令并傳入一些可選參數(shù),如表1所示。運(yùn)行Keytool命令后,keytool會(huì)提示你輸入keystore和key的密碼,并且會(huì)提示你輸入key中其它的字段。隨后便生成my-release-key.keystore的文件,即為用于對(duì)應(yīng)用程序A的購(gòu)物插件進(jìn)行簽名的簽名文件。keystore和key受用戶(hù)輸入的密碼保護(hù);keystore中包含一個(gè)key,有效期為10000天;key別名將在對(duì)插件進(jìn)行簽名時(shí)指向當(dāng)前這個(gè)keystore。
表1
在執(zhí)行完成步驟S102之后,本申請(qǐng)實(shí)施例中的方法便執(zhí)行步驟S103,即:基于所述簽名文件,對(duì)所述第一插件進(jìn)行簽名,生成經(jīng)簽名的第一插件程序包。
在本申請(qǐng)實(shí)施例中,步驟S103的具體實(shí)現(xiàn)方式如下:
基于所述哈希函數(shù),對(duì)所述程序包進(jìn)行哈希運(yùn)算,獲取插件摘要;
基于所述私鑰,對(duì)所述插件摘要進(jìn)行加密,獲取所述第一插件的簽名信息;
基于所述簽名信息及所述程序包,生成經(jīng)簽名的第一插件程序包。
在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)軟件開(kāi)發(fā)包SDK獲取簽名文件之后,便使用所述簽名文件對(duì)應(yīng)用程序A的購(gòu)物插件進(jìn)行簽名。首先利用簽名文件中的哈希函數(shù),如MD5,對(duì)應(yīng)用程序A的購(gòu)物插件的程序包進(jìn)行哈希運(yùn)算,得到應(yīng)用程序A的購(gòu)物插件的信息摘要。然后便利用前述步驟中獲取的簽名文件中的密鑰對(duì)應(yīng)用程序A的購(gòu)物插件的信息摘要進(jìn)行加密,從而獲取簽名信息,最后將獲取的簽名信息附在應(yīng)用程序A的購(gòu)物插件程序包上,即完成了簽名。具體來(lái)講,可以使用軟件開(kāi)發(fā)包SDK中的Jarsigner工具進(jìn)行簽名。jarsigner工具利用軟件開(kāi)發(fā)包SDK的密鑰倉(cāng)庫(kù)中的信息來(lái)產(chǎn)生或校驗(yàn)Java存檔(JAR)文件的數(shù)字簽名。具體命令如下:
$jarsigner-verbose-keystore my-release-key.keystore
my_plugin.dll alias_name
運(yùn)行上述命令后,Jarsigner會(huì)提示輸入keystore和key的密碼,然后Jarsigner基于輸入的參數(shù)修改插件文件,此時(shí),應(yīng)用程序A的購(gòu)物插件便簽上名了。為了進(jìn)一步保證插件的安全,本領(lǐng)域技術(shù)人員也可以使用不同的key對(duì)插件多次簽名,在本申請(qǐng)實(shí)施例中不作限制。
當(dāng)Jarsigner完成簽名后,研發(fā)人員可以對(duì)插件的簽名進(jìn)行驗(yàn)證,具體可以使用如下命令:
$jarsigner-verify my_signed.dll
如果簽名正確,則Jarsigner會(huì)輸出“jar verified”。
在執(zhí)行完成上述步驟之后,本申請(qǐng)實(shí)施例中的方法還包括:
對(duì)所述經(jīng)簽名的第一插件程序包進(jìn)行對(duì)齊,以使所述經(jīng)簽名的第一插件程序包以預(yù)設(shè)字節(jié)數(shù)對(duì)齊。
在具體實(shí)施過(guò)程中,當(dāng)軟件開(kāi)發(fā)包SDK對(duì)應(yīng)用程序A的購(gòu)物插件進(jìn)行簽名后,本領(lǐng)域技術(shù)人員還可以通過(guò)zipalign優(yōu)化工具對(duì)簽名后的程序包進(jìn)行對(duì)齊。Zipalign是軟件開(kāi)發(fā)包SDK中的一個(gè)檔案整理工具,能夠?qū)崿F(xiàn)讓那些未壓縮的數(shù)據(jù)以特定的字節(jié)對(duì)齊,從而優(yōu)化程序包到整合包,如以4字節(jié)對(duì)齊能優(yōu)化性能。當(dāng)對(duì)齊后,操作系統(tǒng)能通過(guò)mmap()閱讀文件,而不是從包中拷貝所有的數(shù)據(jù),使程序執(zhí)行時(shí)間達(dá)到最低限度,當(dāng)設(shè)備運(yùn)行優(yōu)化后的程序時(shí)占更少的RAM(Random Access Memory)隨機(jī)訪問(wèn)內(nèi)存,以使操作系統(tǒng)與程序之間的交互作用更有效率,程序和整體系統(tǒng)的運(yùn)行速度更快,發(fā)揮更大的潛能。
zipalign包含在軟件開(kāi)發(fā)包SDK的tools/文件夾下,當(dāng)需要對(duì)齊簽名后的程序包時(shí),可執(zhí)行如下命令:
zipalign-v 4your_project_name-unaligned.dll your_project_name.dll
-v標(biāo)志表示開(kāi)始日志輸出,4表示對(duì)齊的字節(jié),當(dāng)然,本領(lǐng)域技術(shù)人員也可以根據(jù)實(shí)際使用需要選擇其他的數(shù)字,在本申請(qǐng)實(shí)施例中不作限制。第一個(gè)文件參數(shù)是經(jīng)簽名后插件名稱(chēng),即輸入的程序包,第二個(gè)文件參數(shù)是目的插件文件,即輸出的程序包,若需要用對(duì)齊后的程序包直接覆蓋未對(duì)齊的程序包時(shí),添加-f標(biāo)志即可。
在執(zhí)行完成上述步驟之后,應(yīng)用程序A的購(gòu)物插件便可以發(fā)布到相關(guān)平臺(tái)上,以供用戶(hù)使用。
實(shí)施例二
圖2為本發(fā)明實(shí)施例二提供的一種電子設(shè)備,所述電子設(shè)備具體可以是包含有插件編輯工具的智能手機(jī)、智能電視、平板電腦、個(gè)人電腦,當(dāng)然,也可以是其他能夠編輯插件的電子設(shè)備,所述插件編輯工具可以是軟件開(kāi)發(fā)包SDK(Software Development Kit)、Eclipse ADT或者Ant等,在本申請(qǐng)實(shí)施例中不作限制。所述電子設(shè)備包括:第一獲取單元101、第二獲取單元102以及第一執(zhí)行單元103,而且本發(fā)明實(shí)施例二中的第一獲取單元101、第二獲取單元102以及第一執(zhí)行單元103可以通過(guò)硬件處理器(hardware processor)來(lái)實(shí)現(xiàn)相關(guān)功能單元,其中:
第一獲取單元101,用于獲取第一插件的程序包,其中,所述第一插件為通過(guò)直接調(diào)用所述程序包來(lái)實(shí)現(xiàn)與所述第一插件對(duì)應(yīng)的服務(wù)的插件;
第二獲取單元102,用于獲取簽名文件,其中,所述簽名文件為用于對(duì)所述第一插件進(jìn)行簽名的文件;
第一執(zhí)行單元103,用于基于所述簽名文件,對(duì)所述第一插件進(jìn)行簽名,生成經(jīng)簽名的第一插件程序包。
電子設(shè)備通過(guò)第一獲取單元101獲取用戶(hù)編寫(xiě)好的插件程序包,以及通過(guò)第二獲取單元102獲取用于對(duì)插件程序包進(jìn)行簽名的簽名文件,進(jìn)而通過(guò)第一執(zhí)行單元103利用簽名文件對(duì)插件程序包進(jìn)行簽名,這樣,使不需要安裝的插件也攜帶了簽名信息,提高了插件的安全性;進(jìn)一步,當(dāng)所述插件的程序包在被調(diào)用時(shí),調(diào)用方可以通過(guò)驗(yàn)證其簽名信息確認(rèn)所述插件是否安全,從而避免惡意插件對(duì)用戶(hù)信息的泄露,保證了用戶(hù)的信息安全。
在本申請(qǐng)實(shí)施例二中,第二獲取單元102包括:
第一獲取模塊,用于獲取軟件開(kāi)發(fā)包SDK中的預(yù)設(shè)簽名文件為所述簽名文件;或
第一執(zhí)行模塊,用于運(yùn)行密鑰工具Keytool命令;接收由輸入單元發(fā)送的與所述密鑰工具Keytool命令對(duì)應(yīng)的參數(shù)值;基于所述參數(shù)值,生成并獲取所述簽名文件。
在本申請(qǐng)實(shí)施例二中,所述簽名文件包括用于計(jì)算簽名信息的哈希函數(shù)以及用于對(duì)所述簽名信息進(jìn)行加密的私鑰。
在本申請(qǐng)實(shí)施例二中,第一執(zhí)行單元103包括:
第二獲取模塊,用于基于所述哈希函數(shù),對(duì)所述程序包進(jìn)行哈希運(yùn)算,獲取插件摘要;
第三獲取模塊,用于基于所述私鑰,對(duì)所述插件摘要進(jìn)行加密,獲取所述第一插件的簽名信息;
第二執(zhí)行模塊,用于基于所述簽名信息及所述程序包,生成經(jīng)簽名的第一插件程序包。
在本申請(qǐng)實(shí)施例二中,所述電子設(shè)備還包括:
第一調(diào)整單元104,用于對(duì)所述經(jīng)簽名的第一插件程序包進(jìn)行對(duì)齊,以使所述經(jīng)簽名的第一插件程序包以預(yù)設(shè)字節(jié)數(shù)對(duì)齊。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。