導航:首頁 > 操作系統 > android系統簽名

android系統簽名

發布時間:2022-04-12 06:40:09

android簽名有什麼作用-apk簽名可以帶來的好處 詳細�0�3

平時我們的程序可以在模擬器上安裝並運行,是因為在應用程序開發期間,由於是以 Debug 面試進行編譯的,因此ADT 根據會自動用默認的密鑰和證書來進行簽名,而在以發布模式編譯時,apk 文件就不會得到自動簽名,這樣就需要進行手工簽名。 給apk 簽名可以帶來以下好處: 1.、應用程序升級:如果你希望用戶無縫升級到新的版本,那麼你必須用同一個證書進行簽名。這是由於只有以同一個證書簽名,系統才會允許安裝升級的應用程序。 如果你採用了不同的證書,那麼系統會要求你的應用程序採用不同的包名稱,在這種情況下相當於安裝了一個全新的應用程序。如果想升級應用程序,簽名證書要相同,包名稱要相同! 2.、應用程序模塊化:Android 系統可以允許同一個證書簽名的多個應用程序在一個進程里運行,系統實際把他們作為一個單個的應用程序,此時就可以把我們的應用程序以模塊的方式進行部署,而用戶可以獨立的升級其中的一個模塊 3.、代碼或者數據共享:Android 提供了基於簽名的許可權機制,那麼一個應用程序就可以為另一個以相同證書簽名的應用程序公開自己的功能。以同一個證書對多個應用程序進行簽名,利用基於簽名的許可權檢查,你就可以在應用程序間以安全的方式共享代碼和數據了。 4.不同的應用程序之間,想共享數據,或者共享代碼,那麼要讓他們運行在同一個進程中,而且要讓他們用相同的證書簽名。

Ⅱ android api 簽名是什麼意思

android api 簽名是api調用的時候需要按照約定的參數生成一個字元串,對方接收到後校驗參數,合法後接受請求並返回結果。
所有android端的API的有效訪問URL包括以下三個部分:
1. 資源訪問路徑,如/v1/deal/find_deals;
2. 請求參數:即API對應所需的參數名和參數值param=value,多個請求參數間用&連接
如deal_id=1-85462&appkey=00000;
3. 簽名串,由簽名演算法生成

簽名演算法如下:
1. 對除appkey以外的所有請求參數進行字典升序排列;
2. 將以上排序後的參數表進行字元串連接,如...keyNvalueN;
3. 將app key作為前綴,將app secret作為後綴,對該字元串進行SHA-1計算,並轉換成16進制編碼;
4. 轉換為全大寫形式後即獲得簽名串
簽名串獲得後,將其作為sign參數附加到對應的URL中,即可正常訪問API。
注意:請保證HTTP請求數據編碼務必為UTF-8格式,URL也務必為UTF-8編碼格式。
參考代碼:

// 定義申請獲得的appKey和appSecret
String appkey = "XXXXXXXX";
String secret = "";
String apiUrl = "http://api.dianping.com/v1/business/find_businesses";

// 創建參數表
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("format", "json");
paramMap.put("city", "上海");
paramMap.put("latitude", "31.21524");
paramMap.put("longitude", "121.420033");
paramMap.put("category", "美食");
paramMap.put("region", "長寧區");
paramMap.put("limit", "20");
paramMap.put("radius", "2000");
paramMap.put("offset_type", "0");
paramMap.put("has_coupon", "1");
paramMap.put("has_deal", "1");
paramMap.put("keyword", "泰國菜");
paramMap.put("sort", "7");

// 對參數名進行字典排序
String[] keyArray = paramMap.keySet().toArray(new String[0]);
Arrays.sort(keyArray);

// 拼接有序的參數名-值串
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(appkey);
for (String key : keyArray)
{
stringBuilder.append(key).append(paramMap.get(key));
}

stringBuilder.append(secret);
String codes = stringBuilder.toString();

// 字元串連接示例
// XXXXXXXXcategory美食city上海formatjsonhas_coupon1has_deal1keyword泰國菜latitude31.21524limit20longitude121.420033offset_type0radius2000region長寧區sort7

// SHA-1編碼, 這里使用的是Apache codec,即可獲得簽名(shaHex()會首先將中文轉換為UTF8編碼然後進行sha1計算,使用其他的工具包請注意UTF8編碼轉換)
/*
* 以下sha1簽名代碼效果等同
* byte[] sha = org.apache.commons.codec.digest.DigestUtils.sha(org.apache.commons.codec.binary.StringUtils.getBytesUtf8(codes));
* String sign = org.apache.commons.codec.binary.Hex.encodeHexString(sha).toUpperCase();
*/
String sign = org.apache.commons.codec.digest.DigestUtils.shaHex(codes).toUpperCase();

//簽名示例
//

Ⅲ Android簽名有什麼作用

平時我們的程序可以在模擬器上安裝並運行,是因為在應用程序開發期間,由於是以Debug面試進行編譯的,因此ADT根據會自動用默認的密鑰和證書來進行簽名,而在以發布模式編譯時,apk文件就不會得到自動簽名,這樣就需要進行手工簽名。給apk簽名可以帶來以下好處:1.、應用程序升級:如果你希望用戶無縫升級到新的版本,那麼你必須用同一個證書進行簽名。這是由於只有以同一個證書簽名,系統才會允許安裝升級的應用程序。如果你採用了不同的證書,那麼系統會要求你的應用程序採用不同的包名稱,在這種情況下相當於安裝了一個全新的應用程序。如果想升級應用程序,簽名證書要相同,包名稱要相同!2、應用程序模塊化:Android系統可以允許同一個證書簽名的多個應用程序在一個進程里運行,系統實際把他們作為一個單個的應用程序,此時就可以把我們的應用程序以模塊的方式進行部署,而用戶可以獨立的升級其中的一個模塊3、代碼或者數據共享:Android提供了基於簽名的許可權機制,那麼一個應用程序就可以為另一個以相同證書簽名的應用程序公開自己的功能。以同一個證書對多個應用程序進行簽名,利用基於簽名的許可權檢查,你就可以在應用程序間以安全的方式共享代碼和數據了。不同的應用程序之間,想共享數據,或者共享代碼,那麼要讓他們運行在同一個進程中,而且要讓他們用相同的證書簽名。

Ⅳ 什麼 是 android系統 簽名

簽名後才可以正常安裝,可以保證軟體的唯一性,可以檢驗軟體是否他人盜用;

Ⅳ android中怎樣將自己的應用程序的簽名改為系統簽名一樣

試試下面方法:
1、在應用程序manifest.xml文件根節點中加入屬性:Android:sharedUserId="android.uid.system"
2.使用已經存在的簽名到處android應用程序的apk
3.使用壓縮軟體打開apk,進入META-INF目錄下,刪除應用程序的3個簽名文件
4.到android系統目錄build/target/proct/security/拷貝系統簽名文件:platform.x509.pem、platform.pk8到應用apk中。
5.利用簽名工具signapk.jar修改應用程序簽名:命令為:java -jar signapk.jar platform.x509.pem platform.pk8 test.apk testnew.apk

Ⅵ 如何對Android的APP進行簽名

1、在Android Studio中打開工程,點擊「Build」菜單下的「Generate Signed APK」。

Ⅶ 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簽名文件

工具/原料

Win7 x64
adt-bundle-windows-x86_64-20140702
方法/步驟

新建一個工程命名為「HelloWorld」,操作如下圖所示, 處前兩個界面外,其他的界面都點擊默認值即可;

通過 「右鍵工程->Run As...->Android Application」, 在 工程目錄的 bin/HelloWorld.apk 會生成一個apk文件

點擊 「Use the Export Wizard」,如下圖所示:

點擊 Next, 如下圖所示:

1、選擇 "Create New Keystore",
2、輸入將要保存的數字簽名文件,如「D:\Android\key\HelloWorld.key」
3、輸入密碼,如:HelloWorld
4、輸入確認碼,如 HelloWorld
5、點擊 Next
效果如下:

輸入昵稱,密碼,確認碼,期限,名字後,點擊next,如下圖所示:

輸入需要簽名的apk包,點擊Finish後,就完成了對apk包的數字簽名

同時也會生成數字簽名用的文件,如:「"D:\Android\key\HelloWorld.key"」

Ⅸ 如何查看android 應用簽名

1、查看自己的應用簽名可以通過兩種方式查看(1) debug的apk通過Eclipse查看,:

(2) 某個keystore簽名的應用,通過
Java
keytool -list -keystore E:\Trinea\keystore\appsearch.keystore
查看,會要求輸入簽名密碼,默認為android,:

2、查看三方應用或是系統應用簽名用winrar打開待查看的apk,將其中META-INF文件夾解壓出來,得到其中的CERT.RSA文件,通過
Java
keytool -printcert -file META-INF/CERT.RSA
命令列印證書信息,如微信證書信息:
可以查看簽名的MD5、SHA1、SHA256值及簽名演算法

Ⅹ android中怎樣將自己的應用程序的簽名改為系統簽名一樣

不管是模擬器還是真實手機。因此,在設備或者是模擬器上運行調試程序之前,必須為應用程序設置數字簽名。 所有的程序都必須簽名,沒有被簽名的程序,系統將不能安裝。 可使用自簽署證書簽署應用程序,無須授權憑證。系統僅僅會在安裝的時候測試簽名證書的有效期,如果應用程序的簽名是在安裝之後才到期,那麼應用程序仍然可以正常啟用。可以使用標准工具-Keytool and Jarsigner-生成密鑰,來簽名應用程序的.apk文件。 Android SDK 工具可以在調試時給應用程序簽名。ADT插件和Ant編譯工具都提供了兩種簽名模式-debug模式和release模式 debug模式下,編譯工具使用JDK中的通用程序Keytool通過已知方法和密碼創建秘鎖和密鑰。每次編譯的時候,工具使用debug密鑰簽名應用程序的.apk文件。因為密碼是已知的,工具 不需要在每次編譯的時候提示輸入密鎖和密鑰。 當應用程序調試完畢准備要發布release版本時,可以在release模式下編譯。release模式下,編譯工具不會將.apk文件簽名。需要自己用Keytool生成密鑰和密鎖,再用JDK中的Jarsigner工具給.apk文件簽名。簽名基本設置 首先設置JAVA_HOME環境變數,告訴SDK如何找到Keytool,或者可以在Windows 系統環境變數PATH變數中添加Keytool的JDK路徑。 在發布release版本時,從Package面版上按選中你的project,按滑鼠右鍵,依次選擇Android Tools、Export Application Package。或者可以點擊Manifest Editor,overview 頁面上的「Exporting the unsigned .apk」連接 ,導出未簽名apk文件。保存.apk文件後,用Jarsigner及自己的密鑰給apk文件簽名,如果沒有密鑰, 可以用Keystore創建密鑰和密鎖。如果已經有一個密鑰了,如公共密鑰,就可以給.apk文件簽名了。 也可以把上面這個完整的步驟寫成一個bat文件,這樣需要簽名的時候只要運行這個bat就可以了。下面給出一個完整的bat文件示例: @Rem android簽名程序 //注釋指令 @Rem echo是顯示指令 格式:echo [{onoff}] [message] @echo ********************************************************** @Rem 文件是否存在命令格式:if exist 路徑+文件名 命令 @if exist d:sign/MyFirstApp.keystore goto sign @echo 創建簽名文件MyFirstApp.keystore @Rem keytool命令格式:-genkey產生簽名 -alias別名 -keyalg加密演算法 -validity有效天數 -keystore生產簽名文件名稱keytool -genkey -alias MyFirstApp.keystore -keyalg RSA -validity 40000 -keystore MyFirstApp.keystore @echo 開始簽名: @Rem jarsigner命令格式:-verbose輸出詳細信息 -keystore密鑰庫位置 -signedjar要生成的文件 要簽名的文件 密鑰庫文件 jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore @goto over :sign @echo 開始簽名:jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore :over @echo ********************MyFirstApp.apk 簽名完成*********************** pause 以上是一個給應用簽名的完整bat文件,在運行這個bat文件時,還需要按照屏幕提示的步驟輸入一些必要信息,最後生成一個簽名後的文件是:MyFirstApp_signed.apk。

閱讀全文

與android系統簽名相關的資料

熱點內容
安卓手機沒有聲音均衡器怎麼辦 瀏覽:504
吃雞國際服為什麼會伺服器匆忙 瀏覽:246
微信中如何打開定位伺服器 瀏覽:203
java並發編程書籍 瀏覽:280
android601源碼 瀏覽:788
程序員離職了還能幹嘛 瀏覽:156
少林功法pdf 瀏覽:471
安卓80版本小游戲怎麼玩 瀏覽:632
奇書pdf 瀏覽:836
伺服器的管理口有什麼用 瀏覽:641
澳洲加密資產新政策 瀏覽:155
哈利波特連接伺服器失敗什麼意思 瀏覽:234
提取手機上安裝的app並反編譯 瀏覽:964
人工智慧演算法書 瀏覽:604
安卓如何傳輸圖片給蘋果 瀏覽:829
可編程式控制制器原理應用網路 瀏覽:587
社畜解壓是什麼意思 瀏覽:436
吉利博越用哪個app啊 瀏覽:513
西安單片機晶振電容 瀏覽:187
分地面積的演算法 瀏覽:179