當前位置:首頁 » 安卓系統 » android獲取md5

android獲取md5

發布時間: 2023-12-08 09:47:20

⑴ 如何獲取android 簽名信息

android中有時候需要獲取應用的簽名信息,簽名信息一般有:公鑰,演算法名,MD5值,序列號。要想獲取這些信息首先該APK應用要有系統許可權。

1. 在配置文件里添加系統許可權:android:sharedUserId="android.uid.system"

2. 獲取簽名信息的字元信息:

String signature_key = "";

try{

PackageInfo packageInfo = context.getPackageManager().getPackageInfo(pkgName,
PackageManager.GET_SIGNATURES);

Signature[] signatures =
packageInfo.signatures;

SignatureKey.parseSignature(signatures[0].toByteArray());

} catch (NameNotFoundException e) {

e.printStackTrace();

} catch (NullPointerException e) {

e.printStackTrace();

}

(1).其中packageInfo 得到的是指定包名的簽名信息的字元串。另提及多說一句:在程序中我們一般使用

List list =
mPackageManager.getInstalledPackages(0);來得到所有的安裝包的信息,這其中包括應用名,包名,大小....

(2).
其中[]signatures里是存放的簽名的字元串數組。我們一般取用第一個signatures[0]來做為該應用的簽名信息。這里有一個疑惑就是為什麼得到的是一個字元串的數組列表,而不是一個字元串,也有的開發者採用:

StringBuilder builder = new StringBuilder();

for(Signature sign: signatures
){
builder.append(sign.toCharsString());
builder.append("/n");
}來得到所有的簽名信息。在這里我驗證過,signatures
的長度為1,所以指定apk的簽名信息就為signatures[0]。

至於第二種方法有待發現。

3 .獲取簽名的MD5值

public static final String getMD5String(byte[] paramArrayOfByte)
{
char[] asciiTable = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
97, 98, 99, 100, 101, 102 }; // ascii表對應的數字和字元的編碼
try
{
MessageDigest md5MessageDigest =
MessageDigest.getInstance("MD5");
md5MessageDigest.update(paramArrayOfByte);//
byte[]
tempByte = md5MessageDigest.digest();
int i =
tempByte.length;
char[] tempChar = new char[i *
2];
int j = 0;
int k =
0;
while (true) { //
將二進制數組轉換成字元串
if (j >= i)
{
return new
String(tempChar);
}
int m
= tempByte[j];
int n = k +
1;
tempChar[k] = asciiTable[(0xF & m >>>
4)];
k = n +
1;
tempChar[n] = asciiTable[(m &
0xF)];
j++;
}
}
catch (Exception e)
{
e.printStackTrace();
}
return
null;
}

(1). 其中參數就是上一步得到的簽名的byte數組。

4. 獲取公鑰,簽名演算法,簽名序列號

public static void parseSignature(byte[] signature)
{
try
{
CertificateFactory
certFactory =
CertificateFactory.getInstance("X.509");

X509Certificate cert = (X509Certificate) certFactory.generateCertificate(new
ByteArrayInputStream(signature));

String pubKey =
cert.getPublicKey().toString(); //公鑰

String signNumber =
cert.getSerialNumber().toString();

System.out.println("signName:" +
cert.getSigAlgName());//演算法名

System.out.println("pubKey:" +
pubKey);

System.out.println("signNumber:" +
signNumber);//證書序列編號

System.out.println("subjectDN:"+cert.getSubjectDN().toString());

} catch (CertificateException e)
{

e.printStackTrace();
}
}

5. 電腦查看APK簽名信息

查看三方應用或是系統應用簽名
用winrar打開待查看的apk,將其中META-INF文件夾解壓出來,得到其中的CERT.RSA文件
1.keytool
-printcert -file META-INF/CERT.RSA
命令是:keytool -printcert -file
<簽名文件RSA的路徑>
2.jarsigner -verify -verbose -certs Superuser.apk
此條未驗證成功

⑵ 獲取APK/簽名文件的SHA1證書,MD5

在發布應用的時候,需要通過keystore文件對apk包進行簽名,才能發布到市場上。
在使用微信平台服務時或者其他需要提供MD5值的時候,該如何獲取APK/簽名文件的SHA1證書,MD5呢?

提供三種種方式:
1.通過Android Studio的命令輸入來獲取:
keytool -list -v -keystore xxx.jks
keytool -list -v -keystore xxx.keystore

2.通過解壓apk來獲取:
1) 將apk修改後綴為 .rar文件後解壓;
2) 進入解壓後的META-INF目錄,該目錄下會存在文件CERT.RSA
3) 在該目錄下打開cmd,輸入命令 :keytool -printcert -file CERT.RSA

3.通過Eclipse獲取
依次在 Eclipse 中打開 Window -> Preferances -> Android -> Build。

Well done!

⑶ android開發中怎麼獲取文件的正確md5值

package my.bag;
import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class FileDigest extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
File file = new File("/mnt/sdcard/123.txt");
Log.e("MD5", getFileMD5(file));
}

public static String getFileMD5(File file) {
if (!file.isFile()) {
return null;
}
MessageDigest digest = null;
FileInputStream in = null;
byte buffer[] = new byte[1024];
int len;
try {
digest = MessageDigest.getInstance("MD5");
in = new FileInputStream(file);
while ((len = in.read(buffer, 0, 1024)) != -1) {
digest.update(buffer, 0, len);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
BigInteger bigInt = new BigInteger(1, digest.digest());
return bigInt.toString(16);
}

public static Map getDirMD5(File file, boolean listChild) {
if (!file.isDirectory()) {
return null;
}
Map map = new HashMap();
String md5;
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++) {
File f = files[i];
if (f.isDirectory() && listChild) {
map.putAll(getDirMD5(f, listChild));
} else {
md5 = getFileMD5(f);
if (md5 != null) {
map.put(f.getPath(), md5);
}
}
}
return map;
}
}
最後不要忘了在manifest中添加許可權

⑷ Android查看應用簽名方法

查看應用簽名的MD5、SHA1、SHA256值及簽名演算法。

查看keystore文件簽名信息,前提要有keystore文件和密鑰,才能夠獲取keystore文件的簽名信息。

方法一:(適用於 AS)
1)打開 AS工具窗口欄右邊的 Gradle -> Project -> app -> Tasks -> android -> signingReport,雙擊運行 signingReport;

在沒有keystore文件和密鑰的情況下,要想查看我們所需應用的簽名信息,就需要藉助 keytool 工具來完成。
首先解壓要查看的apk包,通過數據證書管理工具 keytool 查看早禪姿apk的簽名信息。具體步驟如下:
1)將apk修改後綴為 .rar 文件後進行解壓;
2)進入解壓後的 META-INF 目錄,找到該目錄下的 xxx.RSA 文件;
3)通過命令 cmd 打開DOS窗口,輸入命令 : keytool -printcert -file [RSA文件路徑]

在查看應用簽名信陸絕息過程中,可能會遇到以下幾個問題:

定位 keytool.exe 工具所在的目錄,使用相關操作命令查襲敗看簽名信息;

JKS(Java KeyStore) :是 Java 的 keytools 證書工具支持的證書私鑰格式。jks 包含了公鑰和私鑰,可以通過 keytool 工具來將公鑰和私鑰導出。因為包含了私鑰,所以 jks 文件通常通過一個密碼來加以保護。一般用於 Java 或者 Tomcat 伺服器。
PKCS #12 :定義了一種存檔文件格式,用於實現存儲許多加密對象在一個單獨的文件中。通常用它來打包一個私鑰及有關的 X.509 證書,或者打包信任鏈的全部項目。
定位 keytool.exe 工具所在的目錄,使用操作命令轉換證書格式;

⑸ 什麼是MD5值如何查看文件的MD5值

MD5的全稱是Message-Digest Algorithm 5,它一種被廣泛消運衫使用的密碼散列函數,可以產生出一個128位(16位元組)的散悄陪列值(hash value),用於確保信息傳輸完整一致。

MD5值等同於文件的ID,它的值是唯一的。 如果文件已被修改(例如嵌入式病毒,特洛伊木馬等),其MD5值將發生變化。 因此,一些常規下載URL提供文件MD並且通常提供MD5值。 如果用戶在下載後發現他們的MD5值與網站公告不一致,可能是文件被修改過或者下載出錯。

MD5值的查看方式:

1、網路搜索MD5值查看工具「HashMyFiles」並點擊進入官網:

⑹ 使用CMD命令查看Android應用簽名證書的SHA1、MD5、SHA256值

使用命令進入到key.keystore的目錄;

使用命令:keytool -list -v -keystore key.keystore(key.keystore  是你的簽名文件的)

然後回車

提示輸入密碼: 輸入你的證書的密碼

輸入密碼時命令行不會顯示任何內容,你只需要輸入正確的密碼即可,輸入完後回車;

輸入正確,回車後,就會看到:MD5,SHA1,SHA256的值。

⑺ android 微信開放平台,如何獲取應用簽名

在微信開放平台申請app應用的時候,遇到要填寫 應用簽名 一欄。

找到簽名文件
keytool -list -v -keystore xxx.keystore
證書指紋節點下岩卜彎的MD5值轉成小寫,去掉冒號。

首先跟隨 生成keystore和應用簽名 ,生成 .jks 簽名文件,
然後跟隨 微信開放平台Android應用簽名的本質及如何獲取 的第三、四步,生成帶簽名的apk,並用專門的工具查看應用簽名。

最後用工具查看到應用簽名後,我們發現,其實它就是keystore文件的MD5值。
這樣,我們就能夠 查看應用簽名了

如果你在 修改簽名 後,進入微信授權頁面失敗,且提粗悶示"應用簽名與微信開放平台上的簽名不一致",有可能是 微信緩存 的緣故。
根據 android之微信開放平台修改簽名 ,只要清理微信緩存,或重裝微信即可。

接下來還有一個問題沒解決:

解決方法參考 Android Studio直接運行調試簽名包
但這樣的做法會顯示暴露keystore信息,所以跟隨 Android Studio的兩種模式及簽名配置 的後半部分,可以讓弊螞項目間接引入keystore信息。

⑻ 安卓獲取文件MD5值

public static String getFileMD5(File file) {

        if (!file.isFile()) {

            return null;

        }

        MessageDigest digest = null;

        FileInputStream in = null;

        byte buffer[] = new byte[1024];

        int len;

        try {

            digest = MessageDigest.getInstance("MD5");

            in = new FileInputStream(file);

            while ((len = in.read(buffer, 0, 1024)) != -1) {

                digest.update(buffer, 0, len);

            }

            in.close();

        } catch (Exception e) {

            e.printStackTrace();

            return null;

        }

        BigInteger bigInt = new BigInteger(1, digest.digest());

        return bigInt.toString(16);

    }

⑼ 通過AndroidStudio獲取簽名文件信息

1、查看apk安姿閉乎裝文件的簽名信息
右鍵解壓apk,態源打開其中的META-INF文件,得到其中的CERT.RSA文件。
在AndroidStudio中打開 Terminal 執行命令keytool -printcert -file XXX(XXX為CERT.RSA文件路跡悉徑)可以查看簽名的MD5、SHA1、SHA256值。
2、直接查看簽名文件的信息
在AndroidStudio中打開 Terminal 執行命令keytool -list -v -keystore XXX(XXX為簽名文件路徑)
再輸入密碼可以查看簽名的MD5、SHA1、SHA256值。

效果圖:

熱點內容
電腦怎麼登遠程伺服器 發布:2024-11-29 12:32:20 瀏覽:124
先來先服務進程調度演算法 發布:2024-11-29 12:30:12 瀏覽:628
mysql存儲過程循環表中的數據 發布:2024-11-29 12:04:02 瀏覽:600
相機存儲器一般是什麼 發布:2024-11-29 11:59:51 瀏覽:295
傳奇伺服器源碼 發布:2024-11-29 11:43:15 瀏覽:820
新手機如何登錄微信密碼忘記了 發布:2024-11-29 11:34:34 瀏覽:544
筆記本配置低怎麼玩lol 發布:2024-11-29 11:34:32 瀏覽:461
如何在iphone上玩安卓號 發布:2024-11-29 11:24:21 瀏覽:754
伺服器店鋪怎麼取名 發布:2024-11-29 11:19:26 瀏覽:4
phpapache日誌 發布:2024-11-29 11:07:26 瀏覽:310