編輯:關於Android編程
本文實例講述了Android獲取apk簽名指紋的md5值以防止重新被打包的實現方法。分享給大家供大家參考,具體如下:
做個記錄(這裡只是Java層的簽名校驗,java層容易被破解,我建議apk加固下)
獲取md5值來進行Apk簽名校驗, 可以防止apk重新被打包。
下面我說說怎麼獲取apk簽名的md5值(有三種方法)
1.用代碼獲取簽名指紋的md5值
/**
* MD5加密
* @param byteStr 需要加密的內容
* @return 返回 byteStr的md5值
*/
public static String encryptionMD5(byte[] byteStr) {
MessageDigest messageDigest = null;
StringBuffer md5StrBuff = new StringBuffer();
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(byteStr);
byte[] byteArray = messageDigest.digest();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
} else {
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return md5StrBuff.toString();
}
/**
* 獲取app簽名md5值
*/
public String getSignMd5Str() {
try {
PackageInfo packageInfo = mActivity.getPackageManager().getPackageInfo(mActivity.getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] signs = packageInfo.signatures;
Signature sign = signs[0];
String signStr = encryptionMD5(sign.toByteArray());
return signStr;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "";
}
2. keytool工具
使用keytool工具獲取簽名md5信息,下面 key是簽名文件
復制代碼 代碼如下:C:\Program Files\Java\jdk1.8.0_05\bin>keytool -list -v -keystore C:\Users\Administrator\Desktop\key
3. Eclipse 裡面可以查看簽名信息 這裡就不贅述
更多關於Android相關內容感興趣的讀者可查看本站專題:《Android控件用法總結》、《Android視圖View技巧總結》、《Android文件操作技巧匯總》、《Android操作SQLite數據庫技巧總結》、《Android操作json格式數據技巧總結》、《Android數據庫操作技巧總結》、《Android編程之activity操作技巧總結》、《Android編程開發之SD卡操作方法匯總》、《Android開發入門與進階教程》及《Android資源操作技巧匯總》
希望本文所述對大家Android程序設計有所幫助。
Android自定義商品購買數量加減控件
在購買商品時,大家可以自定義數字加減控件,來確定購買商品的實際數量,如何實現此控件,請參考下文:1.自定義數字加減控件的要求創建Module -NumberAddSubV
Android啟動模式總結
啟動模式:LaunchMode在多個Activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的Activity實例,是否重用已存在的Activity實例,是否和
Android設計之美:MVP模式創建輪播圖(Banner)
准備工作:利用github第三方添加輪播圖 基於MVP模式搭建架構 調試添加輪播圖:可參考:github輪播圖Banner添加依賴://添加Retrofit的依賴和Gli
Android App界面的ListView布局實戰演練
一、繼承listActivity、使用arrayAdapter使用ListView和arrayAdapter布局,是ListView布局中最為簡單的一種,首先我們會建立一
我的Android進階之旅------)Android Activity的singleTask加載模式和onActivityResult方法之間的沖突
今天調試一個bug的時候,情景如下:一個Activity A,需要用st