本段代码能够读取APK签名中的开发者信息,哈哈,有趣。

感谢曾阳提供的代码。

import sun.security.pkcs.PKCS7; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.security.GeneralSecurityException; import java.security.cert.X509Certificate; public class SignApk { public static X509Certificate readSignatureBlock(InputStream in) throws IOException, GeneralSecurityException { PKCS7 pkcs7 = new PKCS7(in); return pkcs7.getCertificates()[0]; } public static void main(String[] args) throws FileNotFoundException, IOException, GeneralSecurityException { X509Certificate publicKey = readSignatureBlock(new FileInputStream("./CERT.RSA")); System.out.println("issuer:" + publicKey.getIssuerDN()); System.out.println("subject:" + publicKey.getSubjectDN()); System.out.println(publicKey.getPublicKey()); } }

输出如下:

issuer:CN=Sodino subject:CN=SodinoChen Sun RSA public key, 1024 bits modulus: 154308594144468705348294760484396264219304223307125368116140288659005422830114898674784044956357283073098453132761265419031547660249768235885852151387544779929680291539693130807734777897342583741160281523340554669518353638961667015615312475350767041053961957188628650343640790505255765999004862716823611888529 public exponent: 65537

另外,使用如下命令也可读出指定APK包的签名信息:

jarsigner -verify -verbose -certs

再者,对于一个keystore的指纹信息获取可以用如下命令:

D:/>keytool -list -alias alias_name -keystore keystore_name.KEYSTORE 输入keystore密码: sodino_keystore, 2010-8-9, PrivateKeyEntry, 认证指纹 (MD5): CB:5E:F5:33:23:F4:D2:D3:CC:74:9D:BF:14:36:EB:8D

在Linux下,也可以使用openssl命令来获取:

$ openssl pkcs7 -in CERT.RSA -inform DER -print_certs subject=/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@an roid.com issuer=/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@and oid.com -----BEGIN CERTIFICATE----- MIIEqDCCA5CgAwIBAgIJALOZgIbQVs/6MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYD VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe Fw0wODA0MTUyMjQwNTBaFw0zNTA5MDEyMjQwNTBaMIGUMQswCQYDVQQGEwJVUzET MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI hvcNAQEBBQADggENADCCAQgCggEBAJx4BZKsDV04HN6qZezIpgBuNkgMbXIHsSAR vlCGOqvitV0Amt9xRtbyICKAx81Ne9smJDuKgGwms0sTdSOkkmgiSQTcAUk+fArP GgXIdPabA3tgMJ2QdNJCgOFrrSqHNDYZUer3KkgtCbIEsYdeEqyYwap3PWgAuer9 5W1Yvtjo2hb5o2AJnDeoNKbf7be2tEoEngeiafzPLFSW8s821k35CjuNjzSjuqtM 9TNxqydxmzulh1StDFP8FOHbRdUeI0+76TybpO35zlQmE1DsU1YHv2mi/0qgfbX3 6iANCabBtJ4hQC+J7RGQiTqrWpGA8VLoL4WkV1PPX8GQccXuyCcCAQOjgfwwgfkw HQYDVR0OBBYEFE/koLPdnLop9x1yh8Tnw48ghsKZMIHJBgNVHSMEgcEwgb6AFE/k oLPdnLop9x1yh8Tnw48ghsKZoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJALOZgIbQVs/6MAwGA1Ud EwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBAFclUbjZOh9z3g9tRp+G2tZwFAAp PIigzXzXeLc9r8wZf6t25iEuVsHHYc/EL9cz3lLFCuCIFM78CjtaGkNGBU2Cnx2C tCsgSL+ItdFJKe+F9g7dEtctVWV+IuPoXQTIMdYT0Zk4u4mCJH+jISVroS0dao+S 6h2xw3Mxe6DAN/DRr/ZFrvIkl5+6bnoUvAJccbmBOM7z3fwFlhfPJIRc97QNY4L3 J17XOElatuWTG5QhdlxJG3L7aOCA29tYwgKdNHyLMozkPvaosVUz7fvpib1qSN1L IC7alMarjdW4OZID2q4u1EYjLk/pvZYTlMYwDlE448/Shebk5INTjLixs1c= -----END CERTIFICATE-----

本文内容归CSDN博客博主Sodino 所有

转载请注明出处:http://blog.csdn.net/sodino/archive/2011/01/18/6149706.aspx

java rsa获取密钥_[Java]读取.RSA密钥信息及获取KEYSTORE指纹信息相关推荐

  1. java 图片宽高_[Java]获取图片高和宽

    通过javax.imageio.ImageIO类中的read()函数读取的图片,存放在类java.awt.image.BufferedImage类中.调用BufferedImage类中的getWidt ...

  2. java得到相对路径_[Java]JAVA获取相对路径问题的解决

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径.http://www. ...

  3. java privatekey输出字符串_[Java教程]根据字符串(String)生成公钥(PublicKey)和私钥(PrivateKey)对象_星空网...

    根据字符串(String)生成公钥(PublicKey)和私钥(PrivateKey)对象 2012-05-29 0 1.字符串生成公钥对象 PublicKey /** * 实例化公钥 * * @re ...

  4. java 基础面试 英文_[Java面试] 面试java基础总结大全

    原标题:[Java面试] 面试java基础总结大全 基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. ...

  5. java 内存泄露 书籍_[Java教程]一次艰难的内存泄露排查,BeanUtils 的锅

    [Java教程]一次艰难的内存泄露排查,BeanUtils 的锅 0 2020-10-29 18:24:42 现象 通过jstat -gcutil pid 5000 ,发现fgc次数很多而且频繁,此时 ...

  6. java 历遍 类_[Java] 遍历指定包名下所有的类(支持jar) | 学步园

    项目需要,仅做记录. 支持包名下的子包名遍历,并使用Annotation(内注)来过滤一些不必要的内部类,提高命中精度. 通过Thread.currentThread().getContextClas ...

  7. java视、频_[java视频]感人故 事视 频网 站上那找~~~

    感人故 事视 频网 站上那找~~~ 问题补充:感人故 事视 频网 站上那找~~~ ●呵呵,你问对人了,感人故事就去"新浪show",现在是新浪期下的网站,运行稳定,观看流畅,上传简 ...

  8. java语言金山打字_[Java教程]java实现 swing模仿金山打字 案例源码

    [Java教程]java实现 swing模仿金山打字 案例源码 0 2014-11-17 12:00:21 java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网.http ...

  9. java实现计算器框架_[Java小程序] 实现简单计算器

    这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练.感觉写完后不是很好,如果路过的哪位高手给点建议,小弟万分感激啊. 由于期末来了,没太多时间, ...

最新文章

  1. 跟随美国博导 12 年,我学到最深刻的不是科研,而是……
  2. python编程电子书下载-python编程初学者指南
  3. sql Server snapshots
  4. 解决gitosis.init.InsecureSSHKeyUsername: Username contains not allowed characters问题
  5. Java 洛谷 P5461 赦免战俘讲解
  6. 湖南大学计算机系统原理实验,湖南大学-计算机组成原理实验-实验3-bomblab_图文.pdf...
  7. 【opencv图像基础】图像常见的通道模式:RGB、YUV、HSV
  8. gson 生成json有\u003d异常字符处理
  9. Ubuntu Linux下通过TPM1.2芯片保护SSH私钥的安全
  10. mysql毫秒值转成日期_MySQL毫秒值和日期的指定格式的相互转换
  11. 第十一届蓝桥杯校内赛/校内选拔赛(2020蓝桥杯校选3-java)部分解题思路
  12. MySQL 数据库的基本类型详解(04)
  13. L1-030. 一帮一
  14. 手把手教你安装虚拟机16
  15. [ROM制作教程] 【自制ROM工具大集合】各种修改制作ROM工具软件详解以及运用全集合
  16. Odoo 16 企业版手册 - 库存管理之库存调拨
  17. 英特尔凌动处理器_英特尔刷新Atom Denverton低功耗服务器CPU产品线
  18. hive注意事项01_空值处理
  19. JQuery制作飘落的树叶动画效果
  20. 【离散数学】二元关系

热门文章

  1. 【PMP】工具与技术:专家判断、头脑风暴、焦点小组、访谈的理解
  2. 杰奇程序后台上传不了小说封面,跟模板没关系
  3. 04 DIY流星观测站——镜头简介
  4. 2017年2月17日实习日记
  5. python下载网易云MV
  6. crt 生成pem_crt证书pem
  7. 微信聊天记录转移方法(C盘空间满)
  8. 计算机毕业设计Python+uniapp校友会管理系统小程序(小程序+源码+LW)
  9. 前端工程师 2022 年必备的 7 个工具
  10. 转换达人教你如何将jpg转换成pdf