android文件md5
⑴ android studio怎麼查看md5碼
第一種方法,使用keytool
首先我們得在系統的環境變數中配置下keytool,keytool是位於我們JDK安裝的bin目錄下,如下圖
好了到這里就結束了,在實際開發中為了避免注冊時弄錯簽名,建議時打包後在獲取apk的簽名.
⑵ SMSSDK android發驗證碼返回錯誤碼489MD5錯誤
集成SMSSDK從3.3.0版本開始必須要在mob後台配置MD5簽名(md5是指Android端apk簽名文件(keystore)中的md5值)以下是MD5的使用規則:
1.md5碼限制只針對Android3.3.0以上的版本,Android3.3.0以前的版本或者iOS任何版本,在後台添加md5是不起作用的
2.md5簽名中不含「:」
3.md5目前不區分大小寫, 必須和自己的包里的md5一致
4.未審核或審核未通過,不影響20條測試
5.原先通過審核的包(同一個包名)升級sdk的話,目前沒有測試額度,必須填寫MD5並且審核通過才能使用
6.Android和iOS相同包名,只上傳了ios的話,就在ios包下設置MD5簽名並且審核通過才不影響Android包
7.同一個包名下最多可提交5個md5,只要請求的包中的md5與後台配置的任何一個md5匹配就行
8.如果是gradle集成的用戶,只有在重新打包的時候才會更新,不會影響線上版本 如果還有不清楚的地方 可以登陸MobTech官網咨詢
⑶ 請問android資源文件要怎麼用md5加密
。。。android這種開源的東西,你整理出來的別人早就整理出來了。你有什麼好擔心的。github上面很多都是開源的項目,那都是值得你去學習的。
⑷ 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值
android簽名是要md5值
⑹ android md5 演算法那麼多哪個是對的
在Java中,java.security.MessageDigest (rt.jar中)已經定義了 MD5 的計算,所以我們只需要簡單地調用即可得到 MD5 的128 位整數。然後將此 128 位計 16 個位元組轉換成 16 進製表示即可。
下面是一個可生成字元串或文件MD5校驗碼的例子,測試過,可當做工具類直接使用,其中最主要的是getMD5String(String s)和getFileMD5String(File file)兩個方法,分別用於生成字元串的md5校驗值和生成文件的md5校驗值,getFileMD5String_old(File file)方法可刪除,不建議使用:
Java代碼
package com.why.md5;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
/**
* 默認的密碼字元串組合,用來將位元組轉換成 16 進製表示的字元,apache校驗下載的文件的正確性用的就是默認的這個組合
*/
protected static char hexDigits[] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' ,
'7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
protected static MessageDigest messagedigest = null ;
static {
try {
messagedigest = MessageDigest.getInstance("MD5" );
} catch (NoSuchAlgorithmException nsaex) {
System.err.println(MD5Util.class .getName()
+ "初始化失敗,MessageDigest不支持MD5Util。" );
nsaex.printStackTrace();
}
}
/**
* 生成字元串的md5校驗值
*
* @param s
* @return
*/
public static String getMD5String(String s) {
return getMD5String(s.getBytes());
}
/**
* 判斷字元串的md5校驗碼是否與一個已知的md5碼相匹配
*
* @param password 要校驗的字元串
* @param md5PwdStr 已知的md5校驗碼
* @return
*/
public static boolean checkPassword(String password, String md5PwdStr) {
String s = getMD5String(password);
return s.equals(md5PwdStr);
}
/**
* 生成文件的md5校驗值
*
* @param file
* @return
* @throws IOException
*/
public static String getFileMD5String(File file) throws IOException {
InputStream fis;
fis = new FileInputStream(file);
byte [] buffer = new byte [ 1024 ];
int numRead = 0 ;
while ((numRead = fis.read(buffer)) > 0 ) {
messagedigest.update(buffer, 0 , numRead);
}
fis.close();
return bufferToHex(messagedigest.digest());
}
/**
* JDK1.4中不支持以MappedByteBuffer類型為參數update方法,並且網上有討論要慎用MappedByteBuffer,
* 原因是當使用 FileChannel.map 方法時,MappedByteBuffer 已經在系統內佔用了一個句柄,
* 而使用 FileChannel.close 方法是無法釋放這個句柄的,且FileChannel有沒有提供類似 unmap 的方法,
* 因此會出現無法刪除文件的情況。
*
* 不推薦使用
⑺ Android中,apk文件的MD5值和apk簽名的MD5值 是一樣的嗎
不可以,簽名MD5隻是簽完名表現出來的數字,要有同樣的簽名必須要用同樣的「xxx.keystore」簽名文件。你拿到了「xxx.keystore」文件才行
⑻ Android加密之MD5加密有什麼意義
MD5 加密, 能保證數據的唯一性,加密不可逆,目前網上所說的MD5 加密破解, 利用的就是MD5 加密的唯一性, 其實就是利用數據進行一次或數次加密 生成的結果進行匹配的 並不是所謂的破解, 因為MD5加密不可逆。 銀行賬戶密碼雖然只有6位,但進行N次加密之後(過程可能繼續加鹽)導緻密碼基本破解不了。
⑼ 怎麼獲取android手機應用apk的md5
可能是把手機上的一些基礎程序刪除了。如果你想治本的話,我推薦你刷機,如果你想治標的話,你就把你刪除的程序再放進手機了,如有疑問,你可以再問,希望採納,謝謝!!
⑽ android md5加密怎麼用
importjava.security.MessageDigest;
publicclassMD5Tool{
publicstaticStringMD5(Stringstr){
MessageDigestmd5=null;
try{
md5=MessageDigest.getInstance("MD5");
}catch(Exceptione){
e.printStackTrace();
return"";
}
char[]charArray=str.toCharArray();
byte[]byteArray=newbyte[charArray.length];
for(inti=0;i<charArray.length;i++){
byteArray[i]=(byte)charArray[i];
}
byte[]md5Bytes=md5.digest(byteArray);
StringBufferhexValue=newStringBuffer();
for(inti=0;i<md5Bytes.length;i++)
{
intval=((int)md5Bytes[i])&0xff;
if(val<16)
{
hexValue.append("0");A
}
hexValue.append(Integer.toHexString(val));
}
returnhexValue.toString();
}
publicstaticStringencryptmd5(Stringstr){
char[]a=str.toCharArray();
for(inti=0;i<a.length;i++)
{
a[i]=(char)(a[i]^'l');
}
Strings=newString(a);
returns;
}
}
在要加密的地方,調用這個類的MD5方法就可以加密了,解密就調用這個類的encryptmd5方法,不過好像解密方法不完全正確,畢竟是解密,不可能對復雜字元加密後的解密完全正確。不過加密演算法是完全沒有問題的。