簽名md5android
㈠ android簽名是要md5值還是要sha1值
android簽名是要md5值
㈡ 使用CMD命令查看Android應用簽名證書的SHA1、MD5、SHA256值
使用命令進入到key.keystore的目錄;
使用命令:keytool -list -v -keystore key.keystore(key.keystore 是你的簽名文件的)
然後回車
提示輸入密碼: 輸入你的證書的密碼
輸入密碼時命令行不會顯示任何內容,你只需要輸入正確的密碼即可,輸入完後回車;
輸入正確,回車後,就會看到:MD5,SHA1,SHA256的值。
㈢ 通過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值。
效果圖:
㈣ 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 工具所在的目錄,使用操作命令轉換證書格式;
㈤ 如何獲取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
此條未驗證成功
㈥ Android中,apk文件的MD5值和apk簽名的MD5值 是一樣的嗎
不可以,簽名MD5隻是簽完名表現出來的數字,要有同樣的簽名必須要用同樣的「xxx.keystore」簽名文件。你拿到了「xxx.keystore」文件才行