安卓程序如何获取另一个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;  
    } 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

对已有apk进行重新签名

将APK解压后,META-INF 文件夹里面就是对应的一些签名信息; 当你需要对APK重新签名或者对未签名的apk签名,首先将这个文件夹删除再用压缩工具生成zip,改后缀名为.apk 将你的证书和新生...

android获取APK签名信息及MD5指纹

1.获取APK的签名信息 private String showUninstallAPKSignatures(String apkPath) { String PATH_Pack...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

根据包名获取应用的签名(先将apk安装到手机上)

推荐一个签名工具,可以根据应用的包名获取签名信息(先将自己的工程打包apk安装到手机上,然后输入包名获取签名) 下载地址:...

如何查看apk和签名文件的签名信息

1.通过apktool工具解压当前apk(比如:demo.apk),解压后,会生成CERT.RSA文件 **** apktool d demo.apk 备注:通过这种方式解压出来的Andr...

如何获取apk的签名信息?

在接入第三方功能时,经常要注册提交apk的签名信息sha1签名? 获取apk签名信息的步骤: 1)修改apk后缀名为zip,解压得到其中的META-INF文件夹; 2)把META-INF文件夹放到C盘...

提取应用的签名和包名

欢迎Follow我的GitHub, 关注我的CSDN, 未经授权, 禁止转载. Android应用在使用第三方的库时, 可能需要申请密钥, 表明应用身份, 如高德定位SDK等. 应用签名(printc...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

android 应用内部获取本应用或者对应包名的应用的SHA1签名的办法

public static String getCertificateSHA1Fingerprint(Context context) { PackageManager pm = context....

android 获取另一个apk的信息

/**   * @return all local plaugins   */  private List findLocalPlugins(){   PackageManager pm=g...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓程序如何获取另一个apk的签名
举报原因:
原因补充:

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