安卓程序如何获取另一个apk的签名

原创 2016年05月30日 18:39:26

补充点小知识:

1,字节数组和字符串之间的转换

1、字节数组转换为字符串
byte[] byBuffer = new byte[20];

String strRead = new String(byBuffer);
strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length]);
2、字符串转换成字节数组
byte[] byBuffer = new byte[200];
String strInput="abcdefg";
byBuffer= strInput.getBytes();
注意:如果字符串里面含有中文,要特别注意,在Android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。这种情况下可采取以下办法:
byte[] byBuffer = new byte[200];
String strInput="我是字符串";
byBuffer= strInput.getBytes("gb2312");

2.base64加密
几种加密方式
http://blog.csdn.net/top_code/article/details/11538317

  /** 
     * BASE64 加密 
     * @param str 
     * @return 
     */  
  byte[] encode = str.getBytes("UTF-8");  
            // base64 加密  
            return new String(Base64.encode(encode, 0, encode.length, Base64.DEFAULT), "UTF-8");  

3.获取程序自身的签名
http://blog.csdn.net/wulianghuan/article/details/18400581

private String getSign(Context context) {   
   PackageManager pm = context.getPackageManager();   
   List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_SIGNATURES);   
   Iterator<PackageInfo> iter = apps.iterator();   
   while(iter.hasNext()) {   
        PackageInfo packageinfo = iter.next();   
        String packageName = packageinfo.packageName;   
        if (packageName.equals(instance.getPackageName())) {   
           MediaApplication.logD(DownloadApk.class, packageinfo.signatures[0].toCharsString());   
           return packageinfo.signatures[0].toCharsString();   
        }   
}   
   return null;   

4.获取已安装程序的签名
http://lynen.iteye.com/blog/1700126

public Signature getPackageSignature(Context context, String packageName){  
        PackageManager pm = context.getPackageManager();  
        List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_SIGNATURES);  
        Iterator<PackageInfo> it = apps.iterator();  
        while(it.hasNext()){  
            PackageInfo info = it.next();  
            if(info.packageName.equals(packageName)){  
                return info.signatures[0];  
            }  
        }  
        return null;  
    } 
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

从一个activity跳转到另一个程序的指定activity(含apk检测)

package com.anqiansong.themedemo; import java.io.File; import java.io.FileOutputStream; import java...

android 获取另一个apk的信息

/**   * @return all local plaugins   */  private List findLocalPlugins(){   PackageManager pm=g...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)