一種sdk校驗方法及裝置制造方法
【專利摘要】本發(fā)明公開一種SDK校驗方法及裝置,其中,方法包括步驟:將SDK的主入口寫入到main.cpp程序中;在main.cpp程序中通過獲取應用包名和應用簽名生成一個動態(tài)密碼,將生成的動態(tài)密碼與提供SDK時寫入的固有密碼相比較,判斷二者是否相同,若相同,則執(zhí)行相應的應用。本發(fā)明通過將SDK的主入口放到main.cpp程序中,在提供SDK時在里面寫入有固有密碼,應用在調(diào)用SDK時,若生成的動態(tài)密碼與固有密碼相同,則執(zhí)行相應的程序,通過本發(fā)明的方法實現(xiàn)了SDK只能由特定應用、特定廠商或者特定廠商的特定應用使用,確保了SDK的安全性。
【專利說明】—種SDK校驗方法及裝置
【技術領域】
[0001]本發(fā)明涉及計算機領域,尤其涉及一種SDK校驗方法及裝置。
【背景技術】
[0002]目前,開發(fā)某一應用功能,大多通過引入第三方SDK(Software Development Kit,軟件開發(fā)工具包)來實現(xiàn)其功能,但是第三方如果未對合作方進行技術限制,SDK則有可能會被偷偷轉讓或公開,導致開發(fā)商利益受損。例如對于酷派三筆定位輸入法功能,可以通過轉讓so庫,讓特定廠商使用,并且收取費用,但是開發(fā)商還需要對特定廠商進行技術限制,以防止其再次轉讓,避免利益受損,現(xiàn)有方案大多是通過java代碼進行校驗,但這種方法極易被破解,導致SDK被破解后公開或轉讓,安全性不高。
[0003]因此,現(xiàn)有技術還有待于改進和發(fā)展。
【發(fā)明內(nèi)容】
[0004]鑒于上述現(xiàn)有技術的不足,本發(fā)明的目的在于提供一種SDK校驗方法及裝置,旨在解決現(xiàn)有的SDK易被破解公開的問題。
[0005]本發(fā)明的技術方案如下:
一種SDK校驗方法,其中,包括步驟:
將SDK的主入口寫入到main, cpp程序中;
應用在調(diào)用SDK時,在main, cpp程序中通過獲取應用包名和/或應用簽名生成一個動態(tài)密碼;
將生成的動態(tài)密碼與提供SDK時寫入的固有密碼相比較,判斷二者是否相同,若相同,則執(zhí)行相應的應用。
[0006]所述的SDK校驗方法,其中,所述動態(tài)密碼及固有密碼通過MD5算法生成。
[0007]所述的SDK校驗方法,其中,所述動態(tài)密碼及固有密碼通過SHA算法生成。
[0008]所述的SDK校驗方法,其中,所述SDK的主入口通過NDK寫入到main, cpp程序中。
[0009]所述的SDK校驗方法,其中,當動態(tài)密碼與固有密碼不相同時,則返回空,不執(zhí)行相應的應用。
[0010]一種SDK校驗裝置,其中,包括:
寫入模塊,用于將SDK的主入口寫入到main, cpp程序中;
動態(tài)密碼生成模塊,用于應用在調(diào)用SDK時,在main, cpp程序中通過獲取應用包名和應用簽名生成一個動態(tài)密碼;
校驗模塊,用于將生成的動態(tài)密碼與提供SDK時寫入的固有密碼相比較,判斷二者是否相同,若相同,則執(zhí)行相應的應用。
[0011]所述的SDK校驗裝置,其中,所述動態(tài)密碼及固有密碼通過MD5算法生成。
[0012]所述的SDK校驗裝置,其中,所述動態(tài)密碼及固有密碼通過SHA算法生成。
[0013]所述的SDK校驗裝置,其中,所述SDK的主入口通過NDK寫入到main, cpp程序中。[0014]所述的SDK校驗裝置,其中,所述校驗模塊還用于當動態(tài)密碼與固有密碼不相同時,則返回空,不執(zhí)行相應的應用。
[0015]有益效果:本發(fā)明通過將SDK的主入口放到main, cpp程序中,在提供SDK時在里面寫入有固有密碼,應用在調(diào)用SDK時,若生成的動態(tài)密碼與固有密碼相同,則執(zhí)行相應的程序,通過本發(fā)明的方法實現(xiàn)了 SDK只能由特定應用、特定廠商或者特定廠商的特定應用使用,確保了 SDK的安全性。
【專利附圖】
【附圖說明】
[0016]圖1為本發(fā)明一種SDK校驗方法較佳實施例的流程圖。
[0017]圖2為本發(fā)明一種SDK校驗裝置較佳實施例的結構框圖。
【具體實施方式】
[0018]本發(fā)明提供一種SDK校驗方法及裝置,為使本發(fā)明的目的、技術方案及效果更加清楚、明確,以下對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0019]請參閱圖1,圖1為本發(fā)明一種SDK校驗方法較佳實施例的流程圖,如圖所示,其包括步驟:
SlOljf SDK的主入口寫入到main, cpp程序中;
5102、應用在調(diào)用SDK時,在main,cpp程序中通過獲取應用包名和/或應用簽名生成一個動態(tài)密碼;
5103、將生成的動態(tài)密碼與提供SDK時寫入的固有密碼相比較,判斷二者是否相同,若相同,則執(zhí)行相應的應用。
[0020]其中,在步驟SlOl中,具體可通過NDK (Native Development Kit, 一系列工具的集合,幫助開發(fā)者快速開發(fā)C/C++的動態(tài)庫,并能自動將so和java應用一起打包成apk)將SDK的主入口寫入到main, cpp程序中,其目的是為了使SDK主入口在main, cpp程序中進行校驗。
[0021]在步驟S102時,當應用在調(diào)用SDK時,可以通過獲取應用包名和/或應用簽名來生成一個動態(tài)密碼,當獲取應用包名來生成動態(tài)密碼時,可對特定應用進行校驗,從而限制SDK只能由特定應用使用;當獲取應用簽名來生成動態(tài)密碼時,可對特定廠商進行校驗,從而限制SDK只能由特定廠商使用;當獲取應用包名和應用簽名共同生成動態(tài)密碼時,則可對特定廠商的特定應用進行校驗,從而限制SDK只能由特定廠商的特定應用進行使用。
[0022]在步驟S103中,將上述步驟中生成的動態(tài)密碼與寫入的固有密碼進行比較,判斷是否相同,其中的固有密碼是在提供SDK時,通過包名和/或簽名來生成的,該固有密碼寫死在main, cpp中,所以通過二者之間的比較,即可判斷是否可執(zhí)行相應的應用,若二者相同,則可以執(zhí)行應用,若二者不同,則返回空,不執(zhí)行相應的應用。
[0023]作為本發(fā)明更優(yōu)選的實施例,所述動態(tài)密碼及固有密碼可通過MD5算法生成,當然也不限于采用MD5算法,也可采用SHA算法,例如SHA-1、SHA-224、SHA-256來生成密碼。
[0024]基于上述方法,本發(fā)明還提供一種SDK校驗裝置,如圖2所示,其包括:
寫入模塊100,用于將SDK的主入口寫入到main, cpp程序中; 動態(tài)密碼生成模塊200,用于應用在調(diào)用SDK時,在main, cpp程序中通過獲取應用包名和應用簽名生成一個動態(tài)密碼;
校驗模塊300,用于將生成的動態(tài)密碼與提供SDK時寫入的固有密碼相比較,判斷二者是否相同,若相同,則執(zhí)行相應的應用。關于上述模塊的技術細節(jié)在前面的方法中已有詳述,故不再贅述。
[0025]進一步,所述動態(tài)密碼及固有密碼通過MD5算法或者SHA算法生成。
[0026]進一步,所述SDK的主入口通過NDK寫入到main, cpp程序中。
[0027]綜上所述,本發(fā)明通過將SDK的主入口放到main, cpp程序中,在提供SDK時在里面寫入有固有密碼,在調(diào)用SDK時,若生成的動態(tài)密碼與固有密碼相同,則執(zhí)行相應的程序,通過本發(fā)明實現(xiàn)了 SDK只能由特定應用、特定廠商或者特定廠商的特定應用使用,確保了 SDK的安全性。
[0028]應當理解的是,本發(fā)明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據(jù)上述說明加以改進或變換,所有這些改進和變換都應屬于本發(fā)明所附權利要求的保護范圍。
【權利要求】
1.一種SDK校驗方法,其特征在于,包括步驟: 將SDK的主入口寫入到main, cpp程序中; 應用在調(diào)用SDK時,在main, cpp程序中通過獲取應用包名和/或應用簽名生成一個動態(tài)密碼; 將生成的動態(tài)密碼與提供SDK時寫入的固有密碼相比較,判斷二者是否相同,若相同,則執(zhí)行相應的應用。
2.根據(jù)權利要求1所述的SDK校驗方法,其特征在于,所述動態(tài)密碼及固有密碼通過MD5算法生成。
3.根據(jù)權利要求1所述的SDK校驗方法,其特征在于,所述動態(tài)密碼及固有密碼通過SHA算法生成。
4.根據(jù)權利要求1所述的SDK校驗方法,其特征在于,所述SDK的主入口通過NDK寫入到main, cpp程序中。
5.根據(jù)權利要求1所述的SDK校驗方法,其特征在于,當動態(tài)密碼與固有密碼不相同時,則返回空,不執(zhí)行相應的應用。
6.一種SDK校驗裝置,其特征在于,包括: 寫入模塊,用于將SDK的主入口寫入到main, cpp程序中; 動態(tài)密碼生成模塊,用于應用在調(diào)用SDK時,在main, cpp程序中通過獲取應用包名和應用簽名生成一個動態(tài)密碼; 校驗模塊,用于將生成的動態(tài)密碼與提供SDK時寫入的固有密碼相比較,判斷二者是否相同,若相同,則執(zhí)行相應的應用。
7.根據(jù)權利要求6所述的SDK校驗裝置,其特征在于,所述動態(tài)密碼及固有密碼通過MD5算法生成。
8.根據(jù)權利要求6所述的SDK校驗裝置,其特征在于,所述動態(tài)密碼及固有密碼通過SHA算法生成。
9.根據(jù)權利要求6所述的SDK校驗裝置,其特征在于,所述SDK的主入口通過NDK寫入到main, cpp程序中。
10.根據(jù)權利要求6所述的SDK校驗裝置,其特征在于,所述校驗模塊還用于當動態(tài)密碼與固有密碼不相同時,則返回空,不執(zhí)行相應的應用。
【文檔編號】G06F21/12GK103793633SQ201410051032
【公開日】2014年5月14日 申請日期:2014年2月14日 優(yōu)先權日:2014年2月14日
【發(fā)明者】彭鼎 申請人:宇龍計算機通信科技(深圳)有限公司