java签名证书信息查看工具(jar签名工具)

  • 1、如何重签名APK文件
  • 2、创建app数字签名证书
  • 3、Android查看应用签名方法
  • 4、java数据证书管理工具keytool怎么看生成成功了?
  • 5、如何用Java读取使用证书

方法一:需要删除apk包中的签名文件,META-INF(更改apk格式为压缩包形式,删除META-INF文件夹,改回.apk格式);

将证书(debug.keystore)复制到与需要重新签名的apk文件相同的目录下(如:复制到D:\Sign);

进入cmd模式,进入D:\Sign目录;

运行下面的命令jarsigner -verbose -keystore debug.keystore -storepass android -signedjar PhoneBook_signed.apk -digestalg SHA1 -sigalg MD5withRSA PhoneBook.apk androiddebugkey/*解释:-jarsigner是Java的签名工具-verbose参数表示:显示出签名详细信息-keystore表示使用当前目录中的debug.keystore签名证书文件-storepass android表示Keystore密码:“android”-signedjar PhoneBook_signed.apk表示签名后生成的APK名称PhoneBook.apk表示未签名的APK Android软件-digestalg SHA1 -sigalg MD5withRSA:这就是必须加上的参数,如果你是jdk 1.6也不受影响-androiddebugkey表示Key别名

大功告成,看看文件夹吧;

方法二:使用工具re-sign.jar。打开re-sign.jar。删除签名文件,META-INF后,拖动apk到re-sign.jar处,并点击保存;

      App签名的作用一方面保证安装包内文件的完整性,以防文件被篡改导致不可预知的后果;另一方面在安装包内附加应用的开发者信息。

     总体来说,有如下三种app签名方法:

    1、开发环境自带的app签名

       AS等开发环境一般都自带app签名的功能,只需要在开发环境中找到相应功能按照步骤逐步执行即可得到签名后的apk文件。

    2、cordova环境下编译时自动签名

   Keytool是java自带的签名工具。

   说明:

    1)release-singing.properties是手工配置的文本文件:

      2)build-extras.gradle是手工配置的文本文件:

  3、手工签名【我就是用的这种方法,挺好用的】

     以上创建数字签名证书和APP签名的命令都是JAVA自带的工具,亲测没有问题。在签名时需要提供证书的密码,该密码就是创建数字签名证书时设置的密码。

查看应用签名的MD5、SHA1、SHA256值及签名算法。

查看keystore文件签名信息,前提要有keystore文件和密钥,才能够获取keystore文件的签名信息。

方法一:(适用于 AS)

1)打开 AS工具窗口栏右边的 Gradle – Project – app – Tasks – android – signingReport,双击运行 signingReport;

在没有keystore文件和密钥的情况下,要想查看我们所需应用的签名信息,就需要借助 keytool 工具来完成。

首先解压要查看的apk包,通过数据证书管理工具 keytool 查看apk的签名信息。具体步骤如下:

1)将apk修改后缀为 .rar 文件后进行解压;

2)进入解压后的 META-INF 目录,找到该目录下的 xxx.RSA 文件;

3)通过命令 cmd 打开DOS窗口,输入命令 : keytool -printcert -file [RSA文件路径]

在查看应用签名信息过程中,可能会遇到以下几个问题:

定位 keytool.exe 工具所在的目录,使用相关操作命令查看签名信息;

JKS(Java KeyStore) :是 Java 的 keytools 证书工具支持的证书私钥格式。jks 包含了公钥和私钥,可以通过 keytool 工具来将公钥和私钥导出。因为包含了私钥,所以 jks 文件通常通过一个密码来加以保护。一般用于 Java 或者 Tomcat 服务器。

PKCS #12 :定义了一种存档文件格式,用于实现存储许多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的 X.509 证书,或者打包信任链的全部项目。

定位 keytool.exe 工具所在的目录,使用操作命令转换证书格式;

下面产生一个自签证书。安装完J2SDK(这里用的是J2SDK1.4)后,在J2SDK安装目录的bin目录下,有一个keytool的可执行程序。利用keytool产生自签证书的步骤如下:

第一步,用-genkey命令选项,产生公私密钥对。在控制台界面输入:keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA。这里的-alias表示使用这对公私密钥产生新的keystore入口的别名(keystore是用来存放管理密钥对和证书链的,缺省位置是在使用者主目录下,以.keystore为名的隐藏文件,当然也可指定某个路径存放.keystore文件);-keyalg是产生公私钥对所用的算法,这里是RSA;-keysize定义密钥的长度;-sigalg是签名算法,选择MD5withRSA,即用RSA签名,然后用MD5哈希算法摘要。接下来,系统会提示进行一些输入:

输入keystore密码: abc123

您的名字与姓氏是什么?

[Unknown]: Li

您的组织单位名称是什么?

nbs

证书(Certificate,也称public-key certificate)是用某种签名算法对某些内容(比如公钥)进行数字签名后得到的、可以用来当成信任关系中介的数字凭证。证书发行机构通过发行证书告知证书使用者或实体其公钥(public-key)以及其它一些辅助信息。证书在电子商务安全交易中有着广泛的应用,证书发行机构也称CA(Certificate Authority)。

应用证书

证书在公钥加密应用中的作用是保证公钥在某些可信的机构发布,其在协议SSL、电子交易协议SET等方面有重要的应用。图1显示了一个最简单的证书应用方法:

图1 证书应用方法

证书的应用步骤是:

(1) A把自己的公钥PKA送到CA(Certificate Authority);

(2) CA用自己的私钥和A的公钥生成A的证书,证书内包括CA的数字签名。签名对象包括需要在证书中说明的内容,比如A的公钥、时间戳、序列号等,为了简化这里不妨假设证书中只有三项内容:A的公钥PKA、时间戳TIME1、序列号IDA。那么CA发送给A的简单证书凭证可表达为:CertA=Eca[TIME1,IDA,PKA];

(3) B同样把自己的公钥PKB送到CA;

(4) B得到CA发布的证书CertB;

(5) A告知B证书CertA;

(6) B告知A证书CertB。

A、B各自得到对方证书后,利用从CA得到的公钥(在CA的自签证书中)验证彼此对方的证书是否有效,如果有效,那么就得到了彼此的公钥。利用对方的公钥,可以加密数据,也可以用来验证对方的数字签名。

本文为了方便说明,并没有使用从CA获得的证书,而是通信双方各自产生自签证书,也就是说图1的A和B并没有经过CA,不过前提是A和B之间是互相拥有对方的证书。

原创文章,作者:KVD2M,如若转载,请注明出处:https://www.506064.com/n/126365.html

相关推荐

  • Java compareTo()方法返回值详解

    Java中的数组、字符串、集合都支持compareTo()方法,用于比较它们之间的大小关系。该方法返回一个整数,表示调用对象与传入参数的大小关系。本篇文章将从多个方面对compar…

    编程 2025-01-16
  • php和java哪个容易入手,java和php哪个工资高

    本文目录一览: 1、北大青鸟java培训:java和php哪个好? 2、学java好还是php 3、想转行,学Java还是PHP好? 4、java和php哪个难学? 北大青鸟jav…

    编程 2024-11-13
  • 继承java,继承java实验

    本文目录一览: 1、java什么是继承?什么是父类?什么是子类? 2、Java实现继承 3、在java中,什么叫继承?为什么要有继承? 4、java中的继承定义。 5、java如何…

    编程 2024-11-18
  • java有什么用,java有啥用处

    本文目录一览: 1、java语言能做什么用? 2、JAVA主要是用来干什么的呢? 3、学Java有什么用? java语言能做什么用? Java是目前主流的编程语言之一,如果学会Ja…

    编程 2024-12-31
  • java截取字符串,Java截取字符串后四位

    本文目录一览: 1、java截取字符串不同的几种方式 2、java 截取字符串第一个字符 3、java截取指定字符串中的某段字符如何实现? java截取字符串不同的几种方式 1.s…

    编程 2024-11-03
  • java中布局问题,java中的各种布局

    本文目录一览: 1、java界面设计,布局问题 2、关于Java图形界面布局的问题 3、java绝对布局的问题 4、JAVA中布局嵌套问题 5、java中的布局问题 java界面设…

    编程 2024-11-01
  • Python正则表达式详解:匹配、替换和提取文本中的关键信息

    正则表达式是一种用于模式匹配的语言,它可以帮助我们在大量文本中搜索和定位需要的信息。在Python中,内置的re模块提供了支持正则表达式匹配的功能,并且使用起来非常简单。本文将带你…

    编程 2024-12-12
  • java前后端分离,java前后端分离怎么实现原理

    本文目录一览: 1、如何在开发时部署和运行前后端分离的JavaWe 2、Web项目开发为何要走前后端分离模式? 3、怎么理解前后端分离 4、jsp与前后端分离谁更快 如何在开发时部…

    编程 2025-01-14
  • 说说java虚拟机(java虚拟机怎么用)

    本文目录一览: 1、什么是 Java 虚拟机? 2、什么是Java虚拟机?它的作用是什么? 3、什么是java虚拟机 什么是 Java 虚拟机? 您好,提问者:   Java虚拟机…

    编程 2024-10-03
  • 关于chromevuejs的信息

    本文目录一览: 1、怎么安装VUE的官方插件,vue-devtools。在控制台直接追踪查看vue的变化 2、vue.js devtools 怎么使用 chrome 3、前端Vue…

    编程 2024-10-03