android簽名驗證
『壹』 android簽名是要md5值還是要sha1值
android簽名是要md5值
『貳』 android 簽名失敗怎麼辦
Android簽名失敗由以下原因造成:
1. 手機已經安裝了一個包名相同的應用
2. 當前手機操作系統不滿足程序包要求的系統版本
3. 手機存儲空間不足
4. 安裝包已經損壞
解決辦法:
1. 查看本機是否有安裝,如果有直接卸載掉
2. 查看一下程序包的版本,與當前手機是否一致
3. 卸載手機一些無用或者很少用的應用,釋放手機存儲空間
4. 重新下載安裝包
『叄』 如何判斷 Android 應用的 Apk 簽名是否一致
Android應用的發布形式apk中包含的簽名加密方法除了RSA還有DSA,所以不能只從apk中提取常見的META-INF/CERT.RSA,第一步應該是檢查apk中具體的簽名文件是什麼。
FILE="yourapp.apk"
cert_XSA=`jar tf $FILE | grep SA`
此時得到的cert_XSA可能是META-INF/*.RSA或者META-INF/*.DSA。
接下來從apk中提取具體的簽名文件。
jar xf $FILE $cert_XSA
此時會在當前目錄得到cert_XSA文件。
然後對於得到的簽名文件,提取其中簽名的MD5值
keytool -printcert -file $cert_XSA | grep MD5 > "$FILE.certMD5"
這時候yourapp.certMD5這個文件中就保存了yourapp.apkk中的簽名MD5值。
最後比較兩個app的簽名可以用diff
FILE1="yourapp1.apk"
FILE2="yourapp2.apk"
# ...
# ... 經過上述步驟得到$FILE1.certMD5和$FILE2.certMD5
# ...
certMD5_diff=`diff $FILE1.certMD5 $FILE2.certMD5`
if [ "$certMD5_diff" = "" ]; then
echo "$FILE1.certMD5 == $FILE2.certMD5"
fi
若輸出yourapp1.apk.certMD5 == yourapp2.apk.certMD5那麼這兩個應用的簽名就一致。
『肆』 android開發app簽名過期了怎麼解決
android開發app簽名過期了可以將app卸載,並重新安裝最新版本。因為所有的Android應用程序都要求開發人員用一個證書進行數字簽名,android不會安裝沒有進行簽名的程序,簽名有一個作用就是防止程序被篡改。
APP簽名的其中另一個作用是應用程序升級。如果想要升級應用的版本,那麼必須用同一個證書進行簽名,這是由於只有以同一個證書簽名,系統才會允許安裝升級此應用程序。
如果用戶使用了不同的證書進行簽名,那麼系統就會要求您的應用程序換名稱,也就相當於安裝一個新的應用程序。
(4)android簽名驗證擴展閱讀:
app簽名在數據共享中的應用:
不同的應用程序之間,想共享數據,或者共享代碼,那麼要讓它們運行在同一個進程中,而且要讓它們用相同的證書簽名。
以同一個證書對多個應用程序進行簽名,利用基於簽名的許可權檢查,就可以在應用程序間以安全的方式共享代碼和數據了。
『伍』 如何生成Android的簽名證書
cmd命令生成android簽名證書,有空在寫一篇eclipse導出帶簽名的apk,這裡麵包括生成新的簽名。現在還是講講在cmd怎麼操作生成簽名證書。
1、dos下進入JDK的bin目錄
運行如下命令:keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
(-validity 20000代表有效期天數),命令完成後,bin目錄中會生成android.keystore
示例:
C:\Program Files (x86)\java\jdk1.8.0_25\bin>
keytool -genkey -alias test.keystore -keyalg RSA -validity 20000 -keystore d:\test.keystore
ps:-alias test 生成的keystore別名,-keyalg RSA 加密和數字簽名的演算法,-validity 20000 有效天數
輸入密鑰庫口令:123456
再次輸入新口令:123456
您的名字與姓氏是什麼?
[Unknown]: rob
您的組織單位名稱是什麼?
[Unknown]: abc
您的組織名稱是什麼?
[Unknown]: abc
您所在的城市或區域名稱是什麼?
[Unknown]: guangzhou
您所在的省/市/自治區名稱是什麼?
[Unknown]: guangzhou
該單位的雙字母國家/地區代碼是什麼?
[Unknown]: cn
CN=rob, OU=abc, O=abc, L=guangzhou, ST=guangzhou, C=cn是否正確?
[否]: y
輸入 <test> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):
如果沒有錯誤則回去查看D盤根目錄下,多了test.keystore
所以第一次輸入的是,密鑰庫的密碼。
最後輸入時密鑰別名的密碼。到這里生成簽名就搞定啦。
2、查看md5指紋驗證
輸入keytool -list -v -alias androiddebugkey -keystore 再加上剛剛從紅色框中復制出來的內容
我這里的就是keytool -list -v -alias androiddebugkey -keystore C:\Users\ZLQ\.android\debug.keystore了,回車
-alias androiddebugkey 這個是別名
-keystore C:\Users\ZLQ\.android\debug.keystore 具體位置的密鑰庫
要求輸入密碼,密碼是android,至此就可以拿到MD5認證指紋了
『陸』 android開發 怎麼給apk文件用已有的簽名文件進行簽名,不用eclipse
給apk文件簽名主要分三步:
1、創建證書
2、簽名
3、優化(可選)
1)使用jdk的keytool工具生成簽名用的證書> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 創建過程需要輸入一些標識信息和密碼,一些重要的參數值說明如下(根據自己的需要要進行相應的修改): CERT.keystore ---- 證書保存的文件名 CERT ---- 證書的別名 10000 ---- 10000天的有效期 2048 ---- 默認為1024 bits,Android 建議使用2048 bits或更高其他的詳細信息可以使用keytool -help查看幫助 證書生成後使用如下命令可以查看證書的信息:> keytool -list -alias CERT -keystore CERT.keystore
2)使用jdk的jarsigner工具對apk文件簽名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 簽名過程需要輸入證書的密碼,一些重要的參數值說明如下(根據自己的需要要進行相應的修改): CERT.keystore ---- 證書保存的文件名 CERT ---- 證書的別名 待簽名的apk文件根根目錄下如果有文件夾「META-INFO」,請先刪除(重新簽名就需要這樣做)。如果不想創建過程輸出太多信息,可以刪除「-verbose」 。上述簽名會直接覆蓋原來的文件,如果不想被覆蓋而簽名為另外的新文件 signed.akp,只需將 to_sign.apk 改為 -signedjar to_sign.apk signed.akp 即可。簽名後可以使用如下命令驗證是否簽名成功: > jarsigner -verify to_sign.apk 如果需要查看更詳細的驗證信息,可修改為:> jarsigner -certs -verbose -verify to_sign.apk
3)使用android sdk的zipalign工具優化已簽名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在簽名後再zipalign。這個工具不是jdk自帶的,而是在%ANDROID_HOME%\tools\zipalign.exe。
『柒』 Android簽名有什麼作用
平時我們的程序可以在模擬器上安裝並運行,是因為在應用程序開發期間,由於是以Debug面試進行編譯的,因此ADT根據會自動用默認的密鑰和證書來進行簽名,而在以發布模式編譯時,apk文件就不會得到自動簽名,這樣就需要進行手工簽名。給apk簽名可以帶來以下好處:1.、應用程序升級:如果你希望用戶無縫升級到新的版本,那麼你必須用同一個證書進行簽名。這是由於只有以同一個證書簽名,系統才會允許安裝升級的應用程序。如果你採用了不同的證書,那麼系統會要求你的應用程序採用不同的包名稱,在這種情況下相當於安裝了一個全新的應用程序。如果想升級應用程序,簽名證書要相同,包名稱要相同!2、應用程序模塊化:Android系統可以允許同一個證書簽名的多個應用程序在一個進程里運行,系統實際把他們作為一個單個的應用程序,此時就可以把我們的應用程序以模塊的方式進行部署,而用戶可以獨立的升級其中的一個模塊3、代碼或者數據共享:Android提供了基於簽名的許可權機制,那麼一個應用程序就可以為另一個以相同證書簽名的應用程序公開自己的功能。以同一個證書對多個應用程序進行簽名,利用基於簽名的許可權檢查,你就可以在應用程序間以安全的方式共享代碼和數據了。不同的應用程序之間,想共享數據,或者共享代碼,那麼要讓他們運行在同一個進程中,而且要讓他們用相同的證書簽名。
『捌』 Android怎麼簽名和加密
前言:
當我們編寫完我們的app之後,我們還需要做兩件事:簽名和加密
簽名:
1>為什麼要簽名?
主要是為了確保應用的安全,為什麼這么說呢?那麼,我們首先假設android沒有簽名這個概念,
在這個前提下,下面來舉個實例說明簽名的重要性,比如,我寫了一個myApp,然後裝在了我的手機上,
與此同時,我又裝了一個yourApp,在裝yourApp的時候,突然發現myApp被覆蓋了,為什麼?因為yourApp
的包名和myApp的包名相同,那麼,這樣對於開發人員寫的app的安全性是沒有保障的,也就是說,隨便一個
包名相同的app就可以將另一個app覆蓋掉了,而我們知道獲取一個應用的包名是很容易的事,所以此時簽名的
概念也就隨之而來了,主要是為了保證app的安全性,因為簽名只有開發人員才知道,就算其他人知道這個應用
的包名,但是不知道這個應用的簽名,依舊是沒法覆蓋的,所以這就是android中的簽名的作用,與此同時,
在這里也需要提醒一下我們的開發人員,一旦app上市,那麼這個app的簽名一定要保存好,不然再次升級時,
是沒辦法做到覆蓋的,最好是將簽名再復制一份給上司;
2>如何簽名?
在android studio中,選擇Build -----> Generate Signed APK...
在這個對話框中,Build Type選擇Finish即可完成簽名;
註:(簽名apk生成目錄)
我們簽名之後的apk文件,可以在上邊這幅圖中可以看到,不要找錯簽名的應用了,
在本示例中,其目錄就是:C:UsersDAIDesktop
加密:
1>為什麼要進行加密?
簡而言之,就是為了讓我們的apk不被其他人所破解;
2>如何加密?
參考了一下網上的做法,就是:通過「愛加密」來達到對我們所寫APK的一種加密
註:在愛加密上加密了我們的APK之後,其官網也有明確注釋,就是還需要再進行簽名一次,否則,APK無法運行,
其簽名工具,在 「 愛加密 」 官網上已給出;
這樣當我們在對我們的已經加密的APK破解時,可以發現,其已無法直接獲取得到源碼了!!!
閱讀全文
『玖』 如何對android的apk簽名進行驗證
方法/步驟
1
菜單菜單鍵,鍵入cmd命令進入命令模式。如圖:
2
命令模式中,進入JDK的安裝目錄的Bin子目錄下。(我的JDK安裝在E盤,所以先進入E盤,然後再進入JDK安裝目錄)
3
通過keytool.exe 工具來創建keystore庫.
輸入以下命令:
keytool -genkeypair -alias - mydemo.keystore -keyalg RSA -validity 100
-keystore mydemo.keystore
命令說明如下:
-genkeypair :指定生成數字證實
-alias :指定生成數字證書的別名
-keyalg:指定生成數字證書的演算法 這里如RSA演算法
-validity:指定生成數字證書的有效期
-keystore :指定生成數字證書的存儲路徑。 (這里默認在keytool.exe 目錄下)
回車 出現如圖互動式界面 輸入數字證書費密碼 作者 公司等詳細信息
如圖 :
4
完成後,keystore庫創建完成,你可以在指定的保存目錄下找到 如圖:
5
使用jarsigner命令對未簽名的APK安裝包進行簽名。使用JDK安裝目錄下bin子目錄下的jarsigner.exe工具來進行簽名。
然後把未簽名的apk也拷貝到此目錄。如圖:
6
使用如下命令進行簽名:
jarsigner -verbose -keystore mydemo.keystore -signedjar
-Note.apk Notes.apk mydemo.keystore
以上命令的說明:
-verbose:指定生成詳細輸出
-keystore:指定數字證書存儲路徑
-signedjar:該選項的三個參數為 簽名後的apk包 未簽名的apk包 數字證書別名
注意有效期哦。
7
簽名後的apk 如圖:
8
sdk目錄下tool目錄下使用zipalign.exe工具優化APK安裝包。
將已經簽名的apk包放在zipalign.exe同目錄下 如圖:
9
使用如下命令:
zipalign -f -v 4 -Note.apk -Notes.apk
命令說明:
-f :指定強制覆蓋已有文件
-v 指定生成詳細輸出
4:指定檔案整理基於的位元組數 一般是4 也有基於32位的。
-Note.apk :優化前APK
-Notes.apk 優化後的APK
10
運行命令後,在該目錄下生成一個-Notes.apk,這個就是優化過的APK安裝包
,該安裝包可以對外發布。
如圖:
如果能對你有幫助,希望你能收藏和支持。
http://jingyan..com/article/3c48dd3491d91fe10be358f4.html
『拾』 apk簽名是什麼意思
apk簽名相當於程序的身份識別代碼。
是Android application package英文縮寫。
它是為了確保消息來源的真實性,同時確保消息不會被第三方篡改。於是就產生了apk簽名。
在apk中寫入一個「指紋」。指紋寫入以後,Apk中有任何修改,都會導致這個指紋無效,Android系統在安裝Apk進行簽名校驗時就會不通過,從而保證了安全性。
(10)android簽名驗證擴展閱讀:
作用
1、apk簽名用於程序編譯打包之後,手機在運行程序之前會先去驗證程序的簽名(可以看作類似於我們電腦上常說的md5)是否合法,只有通過了驗證的文件才會被運行,所以簽名軟體的作用的讓文件通過手機的驗證為合法,不同的手機、系統是對應不同的簽名的。
2、可以用簽名工具來更改。比如手機簽名工具ZipSigner 2,可以對手機上的文件進行直接簽名,支持apk、zip及jar格式,方便刷機或漢化的朋友。有些愛好修改安卓apk軟體的用戶有時候需要對apk文件進行修改。
但是如果在電腦上操作的話,打包簽名是十分復雜的,還必須安裝java環境,可以說打包一個包是十分麻煩的,這款簽名工具可以解決上述遇到的問題。
3、應用程序模塊化:Android 系統可以允許同一個證書簽名的多個應用程序在一個進程里運行,系統實際把他們作為一個單個的應用程序,此時就可以把我們的應用程序以模塊的方式進行部署,而用戶可以獨立的升級其中的一個模塊。