//这个是获取SHA1的方法
public static String getSHA1(Context context) {//获取包管理器
    PackageManager pm = context.getPackageManager();
    //获取当前要获取SHA1值的包名,也可以用其他的包名,但需要注意,
    //在用其他包名的前提是,此方法传递的参数Context应该是对应包的上下文。
    String packageName = context.getPackageName();
    //返回包括在包中的签名信息
    int flags = PackageManager.GET_SIGNATURES;
    PackageInfo packageInfo = null;
    try {//获得包的所有内容信息类
        packageInfo = pm.getPackageInfo(packageName, flags);
    } catch (PackageManager.NameNotFoundException e) {e.printStackTrace();
    }//签名信息
    Signature[] signatures = packageInfo.signatures;
    byte[] cert = signatures[0].toByteArray();
    //将签名转换为字节数组流
    InputStream input = new ByteArrayInputStream(cert);
    //证书工厂类,这个类实现了出厂合格证算法的功能
    CertificateFactory cf = null;
    try {cf = CertificateFactory.getInstance("X509");
    } catch (Exception e) {e.printStackTrace();
    }//X509证书,X.509是一种非常通用的证书格式
    X509Certificate c = null;
    try {c = (X509Certificate) cf.generateCertificate(input);
    } catch (Exception e) {e.printStackTrace();
    }String hexString = null;
    try {//加密算法的类,这里的参数可以使MD4,MD5等加密算法
        MessageDigest md = MessageDigest.getInstance("SHA1");
        //获得公钥
        byte[] publicKey = md.digest(c.getEncoded());
        //字节到十六进制的格式转换
        hexString = byte2HexFormatted(publicKey);
        Log.e( "getSHA1: ",hexString );
    } catch (NoSuchAlgorithmException e1) {e1.printStackTrace();
    } catch (CertificateEncodingException e) {e.printStackTrace();
    }return hexString;
}

代码获取SHA1方式相关推荐

  1. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  2. Android代码查看sha1值

    SHA1 编辑 安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital ...

  3. Android 使用代码获取签名信息

    在使用百度地图,微信分享等等第三方SDK的时候,都需要在对应的网站上注册应用信息,其中之一就是通过包名和签名生成一个MD5或者SHA1编码的字符串. 通常情况下,这些信息可以通过ADT工具或者keyt ...

  4. android studio密钥库口令,Android应用开发Android Studio签名打包及根据keystore密钥获取SHA1安全码...

    本文将带你了解Android应用开发Android Studio签名打包及根据keystore密钥获取SHA1安全码,希望本文对大家学Android有所帮助. " 一.签名打包两种方式 1. ...

  5. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

  6. android如何获取SHA1

    某些Google Play服务(例如Google登录和App Invites)要求我们提供签名证书的SHA-1,以便google paly为我们的应用创建OAuth2客户端和API密钥. 那么如何获取 ...

  7. Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式

    Spring获取ApplicationContext方式 我自己常用的方法: 读取一个文件1 //创建Spring容器 2 ApplicationContext ctx = new ClassPath ...

  8. 普通类创建获取session 方式_猿蜕变11——一文搞懂mybatis花式使用方式

    看过之前的蜕变系列文章,相信你对mybatis有了初步的认识.但是这些还不够,我们今天进一步来了解下mybatis的一些用法. 猿蜕变同样是一个原创系列文章,帮助你从一个普通的小白,开始掌握一些行业内 ...

  9. 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    实验4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 姓名:李冬辉 学号:20133201 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http ...

最新文章

  1. python拼接sql语句_【Python】拼接MySQL常用语句
  2. 使用 LxRunOffine 迁移 WSL Ubuntu安装目录
  3. 雪花算法Snowflake
  4. 第5节 三个败家子(5)——刘封,被封印的秘密
  5. React之JSX入门
  6. java break递归_【Java】递归总结
  7. 论文的重复率修改方法
  8. java 打印堆栈_Java打印完整的堆栈信息
  9. 解决from Crypto.Cipher import AES报错
  10. 清华机试真题:成绩排序
  11. python 封闭图形面积_Python求阴影部分面积
  12. 宇宙飞机(space plane)
  13. Tomcat7集群共享Session 基于redis进行统一管理
  14. 微信小程序 java校园跑腿服务平台uniapp
  15. python:考试前,练手习题(斐波那契数,字符串排序,九九乘法表,水仙花数,求和...求数字倍数,(保佑不挂科!)
  16. 大学生“挑战杯”创业计划大赛财务分析估算方法与技巧【转】
  17. MySQLdb安装与使用
  18. 使用99编程 —— EDA拼接屏大规模图像处理
  19. vue ui创建项目 连接断开(errno:-4058,syscall: ‘scandir‘,code:’ ENOENT’,path: ‘C: ....../locales)
  20. 报错解决:expected START_TAG or END_TAG not TEXT (position: TEXT seen

热门文章

  1. 一个非常好用的视频和图片在线压缩网站,YASUBIT!!
  2. erp物料报废 oracle_物料报废处理流程
  3. 拼多多上货助手如何批量抓取商品上传?
  4. 数据链路层(2层 DataLink Layer)
  5. php伪静态后面带拼音的,织梦电脑站手机站TAG标签伪静态-单链接拼音版
  6. android 手柄助手,�� 游戏手柄助手 ��游戏手柄助手(游戏手柄助手安卓版)新版���� - U��ʦ...
  7. Linux内核实时监控键盘输入
  8. NGO and NGO Management
  9. BI(Business Intelligence)即商务智能
  10. linux中$$、$!、$?等的含义