安卓app開發(fā)簽名什么意思(apk簽名工具)
本篇文章給大家談?wù)劙沧縜pp開發(fā)簽名什么意思,以及apk簽名工具對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
什么是簽名,為什么要給應(yīng)用程序簽名,如何
為什么要簽名
①應(yīng)用程序升級(jí):如果你希望用戶無縫升級(jí)到新的版本,那么你必須用同一個(gè)證書進(jìn)行簽名。這是由于只有以同一個(gè)證書簽名,系統(tǒng)才會(huì)允許安裝升級(jí)的應(yīng)用程序。如果你采用了不同的證書,那么系統(tǒng)會(huì)要求你的應(yīng)用程序采用不同的包名稱,在這種情況下相當(dāng)于安裝了一個(gè)全新的應(yīng)用程序。如果想升級(jí)應(yīng)用程序,簽名證書要相同,包名稱要相同!
②應(yīng)用程序模塊化:Android系統(tǒng)可以允許同一個(gè)證書簽名的多個(gè)應(yīng)用程序在一個(gè)進(jìn)程里運(yùn)行,系統(tǒng)實(shí)際把他們作為一個(gè)單個(gè)的應(yīng)用程序,此時(shí)就可以把我們的應(yīng)用程序以模塊的方式進(jìn)行部署,而用戶可以獨(dú)立的升級(jí)其中的一個(gè)模塊
③代碼或者數(shù)據(jù)共享:Android提供了基于簽名的權(quán)限機(jī)制,那么一個(gè)應(yīng)用程序就可以為另一個(gè)以相同證書簽名的應(yīng)用程序公開自己的功能。以同一個(gè)證書對(duì)多個(gè)應(yīng)用程序進(jìn)行簽名,利用基于簽名的權(quán)限檢查,你就可以在應(yīng)用程序間以安全的方式共享代碼和數(shù)據(jù)了。
如何使用Android Studio 進(jìn)行簽名
Build → Generate Signed APK→Greate new...
Key store path:秘鑰倉庫的路徑,比如C:\AndroidSDK20160322\sdk\key.jks試試,紅色的部分名字可以自己起,但后綴必須是 .jks ,
Password: 輸入秘鑰倉庫的密碼,比如: lait.....
Confirm: 確認(rèn)秘鑰倉庫的密碼,比如: lait......
key-------------------------------------------------------
Alias:秘鑰別名 比如 lai
Password: 輸入秘鑰的密碼,比如: 123456
Confirm: 確認(rèn)秘鑰的密碼,比如:123456
Validity(years): 有效期
Certificate:證書,需要的填寫如下
First and Last Name:姓名 比如:LaiTianLiang
Organization Unit:組織單位比如:nothing
Organization:組織 比如:nothing
City or Locality:城市或地區(qū) 比如:ShenYang
State or Province:州或省 比如:LiaoNing
Country Code(XX):國家代碼(XX) 比如:86
填寫好后點(diǎn)擊OK
點(diǎn)擊Next
Enter Master Password 活動(dòng)窗口中的英文
簡單翻譯就是:主密碼是解鎖密碼數(shù)據(jù)庫時(shí)需要,密碼數(shù)據(jù)庫將在這個(gè)會(huì)話期間為所有子系統(tǒng)解鎖
在這里應(yīng)該是設(shè)置主密碼,我也忘記什么時(shí)候設(shè)的了,但是試了一下我的常用密碼 Lt…… 結(jié)果好使了
如果忘記了可以在File-Settings-AppearanceBehavior -SystemSetting-Passwords中修改
最后單擊Finish完成
安卓app開發(fā)簽名文件是什么意思?
所有的Android應(yīng)用程序都要求開發(fā)人員用一個(gè)證書進(jìn)行數(shù)字簽名,anroid系統(tǒng)不會(huì)安裝沒有進(jìn)行簽名的由于程序。
平時(shí)我們的程序可以在模擬器上安裝并運(yùn)行,是因?yàn)樵趹?yīng)用程序開發(fā)期間,由于是以Debug面試進(jìn)行編譯的,因此ADT根據(jù)會(huì)自動(dòng)用默認(rèn)的密鑰和證書來進(jìn)行簽名,而在以發(fā)布模式編譯時(shí),apk文件就不會(huì)得到自動(dòng)簽名,這樣就需要進(jìn)行手工簽名。
給apk簽名可以帶來以下好處:
1. 應(yīng)用程序升級(jí):如果你希望用戶無縫升級(jí)到新的版本,那么你必須用同一個(gè)證書進(jìn)行簽名。這是由于只有以同一個(gè)證書簽名,系統(tǒng)才會(huì)允許安裝升級(jí)的應(yīng)用程序。如果你采用了不同的證書,那么系統(tǒng)會(huì)要求你的應(yīng)用程序采用不同的包名稱,在這種情況下相當(dāng)于安裝了一個(gè)全新的應(yīng)用程序。如果想升級(jí)應(yīng)用程序,簽名證書要相同,包名稱要相同!
2.應(yīng)用程序模塊化:Android系統(tǒng)可以允許同一個(gè)證書簽名的多個(gè)應(yīng)用程序在一個(gè)進(jìn)程里運(yùn)行,系統(tǒng)實(shí)際把他們作為一個(gè)單個(gè)的應(yīng)用程序,此時(shí)就可以把我們的應(yīng)用程序以模塊的方式進(jìn)行部署,而用戶可以獨(dú)立的升級(jí)其中的一個(gè)模塊
3.代碼或者數(shù)據(jù)共享:Android提供了基于簽名的權(quán)限機(jī)制,那么一個(gè)應(yīng)用程序就可以為另一個(gè)以相同證書簽名的應(yīng)用程序公開自己的功能。以同一個(gè)證書對(duì)多個(gè)應(yīng)用程序進(jìn)行簽名,利用基于簽名的權(quán)限檢查,你就可以在應(yīng)用程序間以安全的方式共享代碼和數(shù)據(jù)了。
不同的應(yīng)用程序之間,想共享數(shù)據(jù),或者共享代碼,那么要讓他們運(yùn)行在同一個(gè)進(jìn)程中,而且要讓他們用相同的證書簽名。
android api 簽名是什么意思
android api 簽名是api調(diào)用的時(shí)候需要按照約定的參數(shù)生成一個(gè)字符串,對(duì)方接收到后校驗(yàn)參數(shù),合法后接受請(qǐng)求并返回結(jié)果。
所有android端的API的有效訪問URL包括以下三個(gè)部分:
1. 資源訪問路徑,如/v1/deal/find_deals;
2. 請(qǐng)求參數(shù):即API對(duì)應(yīng)所需的參數(shù)名和參數(shù)值param=value,多個(gè)請(qǐng)求參數(shù)間用連接
如deal_id=1-85462appkey=00000;
3. 簽名串,由簽名算法生成
簽名算法如下:
1. 對(duì)除appkey以外的所有請(qǐng)求參數(shù)進(jìn)行字典升序排列;
2. 將以上排序后的參數(shù)表進(jìn)行字符串連接,如key1value1key2value2key3value3...keyNvalueN;
3. 將app key作為前綴,將app secret作為后綴,對(duì)該字符串進(jìn)行SHA-1計(jì)算,并轉(zhuǎn)換成16進(jìn)制編碼;
4. 轉(zhuǎn)換為全大寫形式后即獲得簽名串
簽名串獲得后,將其作為sign參數(shù)附加到對(duì)應(yīng)的URL中,即可正常訪問API。
注意:請(qǐng)保證HTTP請(qǐng)求數(shù)據(jù)編碼務(wù)必為UTF-8格式,URL也務(wù)必為UTF-8編碼格式。
參考代碼:
// 定義申請(qǐng)獲得的appKey和appSecret
String appkey = "XXXXXXXX";
String secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
String apiUrl = "";
// 創(chuàng)建參數(shù)表
MapString, String paramMap = new HashMapString, String();
paramMap.put("format", "json");
paramMap.put("city", "上海");
paramMap.put("latitude", "31.21524");
paramMap.put("longitude", "121.420033");
paramMap.put("category", "美食");
paramMap.put("region", "長寧區(qū)");
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");
// 對(duì)參數(shù)名進(jìn)行字典排序
String[] keyArray = paramMap.keySet().toArray(new String[0]);
Arrays.sort(keyArray);
// 拼接有序的參數(shù)名-值串
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長寧區(qū)sort7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// SHA-1編碼, 這里使用的是Apache codec,即可獲得簽名(shaHex()會(huì)首先將中文轉(zhuǎn)換為UTF8編碼然后進(jìn)行sha1計(jì)算,使用其他的工具包請(qǐng)注意UTF8編碼轉(zhuǎn)換)
/*
* 以下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();
//簽名示例
//7D78381BC58E1DB1DBA4BD965916FE6B4D5DC892
什么是app應(yīng)用簽名?具體在哪個(gè)位置
app簽名意義:為了保證每個(gè)應(yīng)用程序開發(fā)商合法ID,防止部分開放商可能通過使用相同的Package Name來混淆替換已經(jīng)安裝的程序,需要對(duì)發(fā)布的APK文件進(jìn)行唯一簽名,保證每次發(fā)布的版本的一致性(如自動(dòng)更新不會(huì)因?yàn)榘姹静灰恢露鵁o法安裝)。
具體可以參考:
軟件簽名是什么意思?
S60 第三版在安全性方面做了比較大的改善,對(duì)在系統(tǒng)中安裝運(yùn)行的第三方軟件有更為嚴(yán)格的規(guī)定。 某些涉及手機(jī)軟硬件安全/個(gè)人信息安全等方面的操作被做了特別的限制(比如隨手機(jī)開機(jī)自動(dòng)啟動(dòng)就是被限制的功能之一)。應(yīng)用程序要實(shí)現(xiàn)這些"被特別限制"了的功能就必須獲得“簽名”。也就是說要有人來為這個(gè)操作的安全性負(fù)責(zé)!未經(jīng)任何簽名的程序不能安裝運(yùn)行。
我們說的簽名一般指用戶個(gè)人簽名:
嚴(yán)格來說這個(gè)應(yīng)該是屬于“開發(fā)者簽名”。因?yàn)?Symbian 為軟件開發(fā)者提供一種“開發(fā)證書”,原意本來是讓軟件開發(fā)者作軟件測試用的。這個(gè)“開發(fā)證書”是與作為測試用的機(jī)器的 IMEI 碼掛鉤的。使用這種證書簽名的軟件只能在該 IMEI 碼對(duì)應(yīng)的機(jī)器上使用,不能用于別的機(jī)器。我們所謂的“自簽名”其實(shí)就是利用了這個(gè)方式,說白了就是你說你是開發(fā)軟件的,你提供你測試機(jī)器的 IMEI 碼,Symbian 頒發(fā)給你一個(gè)“開發(fā)證書”,你用這個(gè)證書簽名你的“測試軟件”。你自己對(duì)你自己的“開發(fā)行為”負(fù)責(zé)!如此而已。另外,開發(fā)證書自頒發(fā)日起有效期為半年.但在證書有效期內(nèi)簽署好了程序安裝后的使用時(shí)限是沒有限制的.
IMEI=International Mobile Equipment Identity =國際移動(dòng)設(shè)備身份證。這就和你的“居民身份證”類似。這東西是屬于隱私范圍的,Symbian 不在網(wǎng)站上直接輸入該信息是出于保護(hù)用戶隱私考慮的
什么是手機(jī)軟件的簽名版?簽名版與沒有簽名的區(qū)別?
手機(jī)證書是官方為了防止惡意軟件而推出的安全措施!比如:當(dāng)您在網(wǎng)上下載了一些軟件,但安裝軟件時(shí)總是提示錯(cuò)誤提示,就必須使用證書和簽名工具給軟件進(jìn)行簽名之后才可以順利安裝!就是一個(gè)起到安全是別的作用的工具
安卓app開發(fā)簽名什么意思的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于apk簽名工具、安卓app開發(fā)簽名什么意思的信息別忘了在本站進(jìn)行查找喔。