apk簽名相當於程序的身份識別代碼。
apk簽名用於程序編譯打包之後,手機在運行程序之前會先去驗證程序的簽名(可以看作類似於我們電腦上常說的md5)是否合法,只有通過了驗證的文件才會被運行,所以簽名軟件的作用的讓文件通過手機的驗證為合法,不同的手機、系統是對應不同的簽名的。
進行加密通訊防止API外部調用
服務器端與客戶端各自會存儲壹個TOKEN,這個TOKEN我們為了防止反編譯是用C語言來寫的壹個文件並做了加殼和混淆處理。
在客戶端訪問服務器API任何壹個接口的時候,客戶端需要帶上壹個特殊字段,這個字段就是簽名signature,簽名的生成方式為:
訪問的接口名+時間戳+加密TOKEN 進行整體MD5,並且客戶端將本地的時間戳作為明文參數提交到服務器
服務器首先會驗證這兩個參數:驗證時間戳,如果時間誤差與服務器超過正負壹分鐘,服務器會拒絕訪問(防止被抓包重復請求服務器,正負壹分鐘是防止時間誤差,參數可調整),
然後服務器會根據請求的API地址和提交過來的時間戳再加上本地存儲的token按照MD5重新生成壹個簽名,並比對簽名,簽名壹致才會通過服務器的驗證,進入到下壹步的API邏輯