保護用戶信息的方法和裝置與流程
2023-05-10 01:01:31

本發明涉及計算機技術,尤其涉及一種保護用戶信息的方法和裝置。
背景技術:
伴隨著手機應用的飛速發展,電子設備的應用程式(Application,簡稱:APP)也得到了廣泛應用。APP在電子設備中獨立運行,通過與後臺伺服器進行數據交互,實現APP的功能。
相關技術中,APP向伺服器發送網絡請求時,採用公鑰對網絡請求進行加密,伺服器通過私鑰對加密後的網絡請求進行解密,校驗網絡請求中傳輸的參數的有效性。
然而,採用現有技術的方法,如果應用程式被反編譯,很容易被破解出公鑰,破解者通過偽造公鑰向後臺伺服器循環發起網絡請求,暴力破解用戶信息,因此,現有技術中用戶信息的安全性不高。
技術實現要素:
本發明提供一種保護用戶信息的方法和裝置,以提高用戶信息的安全性。
本發明一個方面提供一種保護用戶信息的方法,包括:
獲取當前驗證信息;
判斷當前驗證信息是否與共享組件SO文件中的預設驗證信息一致;
若當前驗證信息與SO文件中的預設驗證信息一致,則返回加密字符串;
若當前驗證信息與SO文件中的預設驗證信息不一致,則返回空值。
可選地,該方法還包括:
向伺服器發送網絡請求。
可選地,判斷當前驗證信息是否與SO文件中的預設驗證信息一致之前,還包括:
獲取預設驗證信息;
將預設驗證信息,封裝到C語言或者C++語言實現的代碼中,根據代碼生成SO文件;
將SO文件存儲在應用程式APP中。
可選地,預設驗證信息包括:APP的公鑰和/或APP的籤名文件。
可選地,預設驗證信息包括APP的公鑰;
方法將預設驗證信息,封裝到C語言或者C++語言實現的代碼中,根據代碼生成SO文件之前,還包括:
與伺服器協商APP公鑰。
本發明另一個方面提供一種保護用戶信息的裝置,包括:
獲取模塊,用於獲取當前驗證信息;
處理模塊,用於判斷當前驗證信息是否與共享組件SO文件中的預設驗證信息一致;若當前驗證信息與SO文件中的預設驗證信息一致,則返回加密字符串;若當前驗證信息與SO文件中的預設驗證信息不一致,則返回空值。
可選地,該裝置還包括:
發送模塊,用於向伺服器發送網絡請求。
可選地,獲取模塊還用於獲取預設驗證信息;
處理模塊還用於將預設驗證信息,封裝到C語言或者C++語言實現的代碼中,根據代碼生成SO文件;將SO文件存儲在應用程式APP中。
可選地,預設驗證信息包括:APP的公鑰和/或APP的籤名文件。
可選地,預設驗證信息包括APP的公鑰;
獲取模塊還用於與伺服器協商APP公鑰。
本發明提供的保護用戶信息的方法和裝置,通過將預設驗證信息存儲在SO文件中,在APP與伺服器進行數據交互之前,APP端獲取當前驗證信息,確定驗證信息是否與SO文件中的預設信息一致,如果當前驗證信息與SO文件中的預設驗證信息一致,則返回加密字符串。若當前驗證信息與SO文件中的預設驗證信息不一致,則返回空值;由於將預設驗證信息封裝在SO文件中,加大了破解難度,因此,破解者無法得到預設驗證信息,進而,無法模擬網絡請求,從而,保護用戶信息,提高用戶信息的安全性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明保護用戶信息的方法實施例一的流程示意圖;
圖2為本發明保護用戶信息的方法實施例二的流程示意圖;
圖3為本發明保護用戶信息的方法實施例三的流程示意圖;
圖4為本發明保護用戶信息的裝置實施例一的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
本發明的說明書和權利要求書及上述附圖中的術語「第一」、「第二」、「第三」「第四」等(如果存在)是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的數據在適當情況下可以互換,以便這裡描述的本發明的實施例例如能夠以除了在這裡圖示或描述的那些以外的順序實施。此外,術語「包括」和「具有」以及他們的任何變形,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。
本發明通過將預設驗證信息存儲在共享組件(Share Obiect,簡稱:SO)文件中,在APP與伺服器進行數據交互之前,APP端先對當前驗證信息進行驗證,具體地,獲取當前驗證信息,確定驗證信息是否與SO文件中的預設信息一致,如果當前驗證信息與SO文件中的預設驗證信息一致,則返回加密字符串。若當前驗證信息與SO文件中的預設驗證信息不一致,則返回空值;由於將預設驗證信息封裝在SO文件中,加大了破解難度,因此,破解者無法得到預設驗證信息,進而,無法模擬網絡請求,從而,保護用戶信息,提高用戶信息的安全性。
下面以具體地實施例對本發明的技術方案進行詳細說明。下面這幾個具體的實施例可以相互結合,對於相同或相似的概念或過程可能在某些實施例不再贅述。
圖1為本發明保護用戶信息的方法實施例一的流程示意圖,本實施例由APP端執行,本實施例的方法如下:
S101:獲取當前驗證信息。
其中,當前驗證信息通常與APP的帳號唯一對應,例如:可以為APP的公鑰、APP的籤名文件或者其他信息。
S102:判斷當前驗證信息是否與共享組件SO文件中的預設驗證信息一致;若是,則執行S103,若否,則執行S104。
其中,預設驗證信息包括但不限於:APP的公鑰和/或APP的籤名文件。
其中,APP的公鑰用於對向伺服器發送的網絡請求進行加密處理。
APP的籤名文件,該文件在打包時編譯生成,它唯一且不能重複,能夠確保APP的唯一性。
當判斷當前驗證信息與SO文件中的預設驗證信息一致時,則執行S103。當判斷當前驗證信息與SO文件中的預設驗證信息不一致時,說明當前驗證信息的發送方應該是非法用戶,則執行S104。
S103:返回加密字符串。
S104:返回空值。
S105:向伺服器發送加密字符串。
伺服器通過私鑰對加密字符串進行解密,然而進行驗證,返迴響應給APP端。
舉例來說:
其中,APP的公鑰一個示例如下所示:
「MIICdwIBADANBgkqhksdfsfsdfsiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMWRKAbbwylnEesVEi+XxIU7D0zjaxeUjkZdavJCIv6xFLumM6MkvAxeo4nXtrCdM/In1ogbfUBEKiWl7HxmcRbWrjl0uso7A4SxwZhgynCxdfsH4cXQqt61GaLmbzIEvD8H1BazNCwerwerewrsdfhPDHdswkxKo0sdfsdfjrEuRh2h7+mfdsf9fcQPAgMBAAECgYEAv9F1eWM5kyM9ZG9q3saNyYVUD6TmP1i+4lalFV1dOMeZh6+Qhx+NbL0eLyE/gS7AVqaTRkbaTuFfwnnsdfsdWi4757TY7QMdLHPN0LGeWDSA+/+UjkT8m4QyTAHV3hUjQd519swo1GuuzLhCFhoYV+gW0kvWP3Ksdfasfcbyi17yedBpmECQQDq4n0DvD0isf76rotwxDo7OsRrbEsdfasfwerfXgxlQLsfsfsfsdfshMB/CG7bcmq3hZDbQ4sxzCqu2FQDBE8Mk5AsfkEA11PbucHT+0/Jy2sfSSG7BfwQ6Iy1hwRGiV/WLJIrL4ycdwdGFeNdzCV2ekCj1cb/cxTifL1Cdm9elWiSVBPfhwJBAMEOS0aIr49JgiYoXbIymPkeXhbmhTC9cvao8zYhAAPgb/sdfsfsfs/DGxw5pJQwY0c7A6S2IeTb5Oo0PLFAsIZr0Epuje9FOEqkCQEvq16L0Q/AvY4m8PPikscYrCOsD05sL6jnPQJKNbXO+CwKgZe52VhG0Ze1Ru2dEKlJJLjym9GVLBm2CpMtaxFg=」
消息摘要算法第五版(Message Digest Algorithm,簡稱:MD5)證書為例,如下所示:
「DC6DBD6E49682A57A8B82889043B93A8」
本實施例,通過將預設驗證信息存儲在SO文件中,在APP與伺服器進行數據交互之前,APP端獲取當前驗證信息,確定驗證信息是否與SO文件中的預設信息一致,如果當前驗證信息與SO文件中的預設驗證信息一致,則返回加密字符串。若當前驗證信息與SO文件中的預設驗證信息不一致,則返回空值;由於將預設驗證信息封裝在SO文件中,加大了破解難度,因此,破解者無法得到預設驗證信息,進而,無法模擬網絡請求,從而,保護用戶信息,提高用戶信息的安全性。
圖2為本發明保護用戶信息的方法實施例二的流程示意圖,圖2是在圖1所示實施例的基礎上,進一步地,在S102之前,還包括:
S1001:獲取預設驗證信息。
預設驗證信息包括但不限於下述至少一種:
APP公鑰和APP的籤名文件。
S1002:將預設驗證信息,封裝到C語言或者C++語言實現的代碼中,根據代碼生成SO文件。
其中,一種可能的實現方式為:
編寫C語音或者C++語言實現的代碼,實現判斷當前驗證信息是否與代碼中的預設驗證信息一致的邏輯,若一致,則根據預設驗證信息中部分或者全部信息對網絡請求進行加密,生成加密字符串。利用Java本地接口(Java Native Interface,簡稱:JNI)特徵,使用本地語言開發包(native development kit,簡稱:NDK),通過Android.mk文件,將C語言或者C++語言代碼編寫成JAVA能識別的語言,最終生成SO文件。
其中,SO文件可以根據電子設備的作業系統中的CPU型號的不同,可以分為很多種,例如:「armeabi-v7a」等,因其向下兼容的特性,只需要放在armeabi文件夾下即可。
S1003:將SO文件存儲在應用程式APP中。
其中,一種可能的實現方式為將SO文件存儲在指定的目錄,例如android工程中「main/jinLibs/armeabi」文件夾下,該目錄通常是android工程指定的目錄。該SO文件可以被JAVA代碼加載。
本實施例,通過獲取預設驗證信息,將預設驗證信息,封裝到C語言或者C++語言實現的代碼中,根據代碼生成SO文件,將SO文件存儲在應用程式APP中。從而,實現將預設驗證信息以二進位文件的形式存儲在APP中,加大了破解難度,因此,破解者無法得到預設驗證信息,進而,無法模擬網絡請求,從而,保護用戶信息,提高用戶信息的安全性。
圖3為本發明保護用戶信息的方法實施例三的流程示意圖,圖3是在圖2所示實施例的基礎上,當預設驗證信息中包含APP的公鑰時,在S1001之前,還包括:
S1000:APP與伺服器協商APP公鑰。
APP與伺服器預先協商APP公鑰,用於APP端對向伺服器發送的請求加密;該公鑰APP和伺服器各自保存一份,伺服器此外再多存儲一份私鑰,用於對APP發送的加密字符串進行解密。
本實施例,通過APP與伺服器協商的方式,確定APP公鑰,以便於APP與伺服器進行數據交互的過程中進行加密處理,提高用戶信息的安全性。
圖4為本發明保護用戶信息的裝置實施例一的結構示意圖,本實施例的裝置包括:獲取模塊401和處理模塊402,其中,
獲取模塊401用於獲取當前驗證信息;
處理模塊402用於判斷當前驗證信息是否與共享組件SO文件中的預設驗證信息一致;若當前驗證信息與SO文件中的預設驗證信息一致,則返回加密字符串;若當前驗證信息與SO文件中的預設驗證信息不一致,則返回空值。
其中,預設驗證信息包括:APP的公鑰和/或APP的籤名文件。
在圖4中,還可以包括:發送模塊403用於向伺服器發送網絡請求。
本實施例,對應的可用於執行圖1所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
在保護用戶信息的裝置實施例一的基礎上,本發明提供的保護用戶信息的裝置實施例二中,獲取模塊401還用於獲取預設驗證信息;處理模塊402還用於將預設驗證信息,封裝到C語言或者C++語言實現的代碼中,根據代碼生成SO文件;將SO文件存儲在應用程式APP中。
本實施例,對應的可用於執行圖2所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
在保護用戶信息的裝置實施例一的基礎上,本發明提供的保護用戶信息的裝置實施例二中,預設驗證信息包括APP的公鑰;獲取模塊401還用於與伺服器協商APP公鑰。
本實施例,對應的可用於執行圖3所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。
最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。