方法一:命令行重签名

D:\>keytool -help
keytool 用法:

-certreq [-v] [-protected]
[-alias <别名>] [-sigalg <sigalg>]
[-file <csr_file>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-changealias [-v] [-protected] -alias <别名> -destalias <目标别名>
[-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-delete [-v] [-protected] -alias <别名>
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-exportcert [-v] [-rfc] [-protected]
[-alias <别名>] [-file <认证文件>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-genkeypair [-v] [-protected]
[-alias <别名>]
[-keyalg <keyalg>] [-keysize <密钥大小>]
[-sigalg <sigalg>] [-dname <dname>]
[-validity <valDays>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-genseckey [-v] [-protected]
[-alias <别名>] [-keypass <密钥库口令>]
[-keyalg <keyalg>] [-keysize <密钥大小>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-help

-importcert [-v] [-noprompt] [-trustcacerts] [-protected]
[-alias <别名>]
[-file <认证文件>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-importkeystore [-v]
[-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]
[-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]
[-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>
[-srcprotected] [-destprotected]
[-srcprovidername <源提供方名称>]
[-destprovidername <目标提供方名称>]
[-srcalias <源别名> [-destalias <目标别名>]
[-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]
[-noprompt]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-keypasswd [-v] [-alias <别名>]
[-keypass <旧密钥库口令>] [-new <新密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-list [-v | -rfc] [-protected]
[-alias <别名>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

-printcert [-v] [-file <认证文件>]

-storepasswd [-v] [-new <新存储库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]

keytool -genkey -v -alias nuomidebug -keystore nuomidebug.keystore -keyalg RSA -keysize 2048 -validity 365

输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: dtest
您的组织单位名称是什么?
[Unknown]: dumts
您的组织名称是什么?
[Unknown]: dumts
您所在的城市或区域名称是什么?
[Unknown]: shen zhen
您所在的州或省份名称是什么?
[Unknown]: guang dong
该单位的两字母国家代码是什么
[Unknown]: CN
CN=dtest, OU=dumts, O=dumts, L=shen zhen, ST=guang dong, C=CN 正确吗?
[否]: y

正在为以下对象生成 2,048 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 365
天):
CN=dtest, OU=dumts, O=dumts, L=shen zhen, ST=guang dong, C=CN
输入<nuomidebug>的主密码
(如果和 keystore 密码相同,按回车):
[正在存储 nuomidebug.keystore]

D:\>jarsigner -h
用法:jarsigner [选项] jar 文件别名
jarsigner -verify [选项] jar 文件

[-keystore <url>] 密钥库位置
[-storepass <口令>] 用于密钥库完整性的口令
[-storetype <类型>] 密钥库类型
[-keypass <口令>] 专用密钥的口令(如果不同)
[-sigfile <文件>] .SF/.DSA 文件的名称
[-signedjar <文件>] 已签名的 JAR 文件的名称
[-digestalg <算法>] 摘要算法的名称
[-sigalg <算法>] 签名算法的名称
[-verify] 验证已签名的 JAR 文件
[-verbose] 签名/验证时输出详细信息
[-certs] 输出详细信息和验证时显示证书
[-tsa <url>] 时间戳机构的位置
[-tsacert <别名>] 时间戳机构的公共密钥证书
[-altsigner <类>] 替代的签名机制的类名
[-altsignerpath <路径列表>] 替代的签名机制的位置
[-internalsf] 在签名块内包含 .SF 文件
[-sectionsonly] 不计算整个清单的散列
[-protected] 密钥库已保护验证路径
[-providerName <名称>] 提供者名称
[-providerClass <类> 加密服务提供者的名称
[-providerArg <参数>] ... 主类文件和构造函数参数

jarsigner -keystore nuomidebug.keystore -verbose -certs jar f:\resign\baidunuomidebug.apk f:\resign\baidunuomi.apk nuomidebug

jarsigner -keystore nuomidebug.keystore -verbose -certs -signedjar f:\resign\baidunuomidebug.apk f:\resign\baidunuomi.apk nuomidebug

方法二:resign.jar工具重签名
1、进入resign.jar所在的目录,执行java -jar resign.jar
2、在需要重签名的apk应用拖进到弹出的窗口中既可以

最新文章

  1. 单片机与控制实验(2)——LED点阵显示屏
  2. Unity3D 中的定时器
  3. 万圣节的糖果(Halloween Sweets)
  4. linux默认网关的设置
  5. 新建web工程Jdk怎么不是自己安装的, 是自带的
  6. 启动MFC程序的时候报错:0xC0000005: 读取位置 0x00000000 时发生访问冲突
  7. CSS和JavaScript以及Ajax实现预加载图片的方法及优缺点分析
  8. WIN7下制作的ubunbu U盘安装无法使用
  9. Java 下实现锁无关数据结构--转载
  10. SIM卡基础,各管脚意义,封装定义
  11. 使用base64提升视觉效果体验
  12. vue-cli 打包编译 -webkit-box-orient: vertical 被删除解决办法
  13. Git使用总结之修改了用户名之后git无法使用
  14. 基于335X平台的UBOOT中交换芯片驱动移植
  15. 关于redis的安装
  16. Java操作Excel(使用JXL)
  17. LInux下设置账号有效时间 以及 修改用户名(同时修改用户组名和家目录)
  18. python, 在信用评级中,计算KS statistic值
  19. 树上三角形 BZOJ3251
  20. WAP2.0(XHTML MP)基础介绍

热门文章

  1. QQ等级表
  2. java 追加文件
  3. thinkphp标签
  4. C++ ## ... 实用
  5. Bash 中 SHLVL 变量为 1000 的时候
  6. PHP 语言特性
  7. JSP内置对象之application对象
  8. Linux进程间通信(二):信号集函数 sigemptyset()、sigprocmask()、sigpending()、sigsuspend()
  9. MySQL字段自增长AUTO_INCREMENT的学习笔记
  10. C和指针 第十二章 结构体 整体赋值 error: expected expression