本人比较lower一直使用doc命令,生成签名文件,一直使用keystore,最近遇到一个同行用的jks,但是现在很多大平台提供的加固包也就是加壳包,都需要keystore,研究了下,实现jks文件转换为keystore文件需求。

1.了解keystore

标准keystore(standard jdk keystore types)包括:

JCEKS,JKS,PKCS12这几种格式,主要区别就是jceks可是用来存储对称密钥(分组密钥、私密密钥),而jks就只能存储非对称密钥对(私钥+x509公钥证书),pkcs12是通用格式(rsa公司标准)微软和java都支持。这里就产生了一个问题:使用java的keytool产生的keystore如何在微软的系统下使用(如何导入到ie中),解决方法就是先将jks的keystore变成pkcs12格式的keystore。其实jdk中存在一个keystore class,提供了抽象的通用对keystore操作的类,基于这个接口,实现了以下这个可是在两种格式之间互导的程序[该1解释摘自他人博客]

2.jks—>keystore本质

仔细阅读了keystore的相关,也就是jks—>keystore文件本质,就是把jks文件的加密信息导出成为PKCS12的类型文件,再把这个信息,导入到keystore文件中

3.jks—>keystore需要提供支持

1)jdk环境:更具上面的内容我们会发现,我们需要依赖jdk环境,顾需要进行一系列的操作一定要有jdk环境

2)需要提供JKS到PKCS12转换的方法

3)需要提供PKCS12内容导入||生成keystore文件的方法

4.具体实现

根据上面的分析,我们就要一步一步的进行实现上面分析的操作

1)首先JDK环境

现在很多的电脑已经不需要自己认为配置JDK环境,只需要安装JDK就会自己配置,因为本人是android开发,本身就已经有jdk环境

2)生成jks文件

小编用as生成了jks文件,“”test.jk“”

3)jsk转换为PKCS12类型方法

java环境中提供了相关支持,代码如下:

<1>Java代码实现

            //这里是得到jks的FileInputStreamFileInputStream jskFile = new FileInputStream(stroe1FileName);  //创建jks KeyStore对象KeyStore keyStore1 = KeyStore.getInstance("JKS");  keyStore1.load (jskFile, store1Passwd.toCharArray());  Key key = keyStore1.getKey(store1KeyAlias ,store1KeyPasswd.toCharArray());  KeyFactory keyfact = java.security.KeyFactory.getInstance(key.getAlgorithm());  PrivateKey priKey = keyfact.generatePrivate(new PKCS8EncodedKeySpec(key.getEncoded()));  KeyStore keystore2 = KeyStore.getInstance("PKCS12");  //这里没有设置密码,当你写入keystore文件的时候会提示设置密码keystore2.load(null, null); //把jks的信息写入到PKCS12对象中keystore2.setKeyEntry(store2KeyAlias, priKey, store2KeyPasswd.toCharArray(),keyStore1.getCertificateChain(store1CertChainAlias));  keystore2.store(new FileOutputStream(store2FileName), store2Passwd.toCharArray());  

<2>doc命令

keytool -importkeystore -srckeystore D:\test.keystore -srcstoretype JKS -deststoretype PKCS12 -destkeystore test1.p12


亲测,导入成功

4)PKCS12—>keystore文件

<1>doc实现

keytool -v -importkeystore -srckeystore D:\test.p12 -srcstoretype PKCS12 -destkeystore D:\test.keystore -deststoretype JKS

如上就生成成功了

其中需要注意,在执行该doc命令之前,导入的keystore文件要不存在欧

5.快速实现

因为往往本人都是直接一次性,用doc命令 jsk—>keystore,整合下代码如下:

keytool -importkeystore -srckeystore D:\test.keystore -srcstoretype JKS -deststoretype PKCS12 -destkeystore test1.p12keytool -v -importkeystore -srckeystore D:\test1.p12 -srcstoretype PKCS12 -destkeystore D:\test.keystore -deststoretype JKS

上面的代码就实现了 test.jks–>test1.p12–>test.keystore的转换了。jks与keystore的转换方法很多,这只是我最开始用的一种,可以查看另外一篇博客,https://blog.csdn.net/ONLYMETAGAIN/article/details/78782056

Android jks文件签名转换keystore文件签名相关推荐

  1. linux查看msg内容,如何打开MSG文件,如何转换MSG文件

    具有.MSG文件扩展名的文件很可能是Outlook邮件消息文件. Microsoft Outlook程序可以生成与电子邮件,约会,联系人或任务相关的MSG文件. 如果是电子邮件,MSG文件可能包含消息 ...

  2. 安卓APP证书Android签名证书.keystore文件制作生成

    将app发布到应用宝时,而上传安装包时提示如下图时, 但您或您的团队从未上传该应用,您可以通过认领功能认领应用.认领成功后该应用会自动转入您的账户下,同时保留应用全部数据,您可以在应用管理中进行管理. ...

  3. MAC下 生成安卓签名证书.keystore文件【详细】

    在安卓打包.APK文件的过程中,是需要选择一个. keystore 即安卓数字签名证书.那今天我们就来看看这个,证书是怎么从无到有,一步步的生成的. windows平台生成证书的方法,点击去看看 检查 ...

  4. rmd文件怎么转换html文件,RMD文件扩展名 - 什么是.rmd以及如何打开? - ReviverSoft...

    你在这里因为你有,有一个文件扩展名结尾的​​文件 .rmd. 文件与文件扩展名 .rmd 只能通过特定的应用程序推出.这有可能是 .rmd 文件是数据文件,而不是文件或媒体,这意味着他们并不是在所有观 ...

  5. 【知识整理】生成Android(安卓)app证书的keystore文件

    一.准备工作:需要安装Java JDK(建议8.0以上,其他版本能不能成功还没试过.),及配置环境变量,至于如何配置环境变量这里不做详细介绍,请各位自行搜索. 二.使用keytool工具生成证书:ke ...

  6. php文件怎么转换jpg文件怎么打开方式,heic文件如何打开 heic格式转换JPG方法【步骤教程】...

    heic文件怎么打开?heic格式怎么转换JPG?自iOS 11正式版发布,iPhone 7及其以上的新机型在拍摄照片后,图片自动保存成HEIC格式.HEIC是一种高保真画质的图片封装格式,这种格式在 ...

  7. rmd文件怎么转换html文件,提取.Rmd文件的html依赖项(包含htmlwidgets)

    题 我怎样才能创建一个将.Rmd文件(包含htmlwidgets代码)作为输入的函数,并输出一个包含其JavaScript / CSS依赖项的html文件? 具体来说,当渲染为html时,临时文件rm ...

  8. Java 通过csv表格文件生成转换SQL文件

    public static void main(String[] args) throws IOException {ArrayList<String[]> csvList = new A ...

  9. Android 查看apk keystore文件签名信息

    Android应用开发的时候会经常使用到第三方SDK,例如地图.推送.支付以及分享等.而这些第三方服务SDK为了应用不被滥用都会有签名验证机制.我们通过上传Android应用的签名来在服务端配置以验证 ...

  10. Android签名证书 keystore jks pem x509

    Android签名证书 背景 因业务需求,经常与系统厂商打交道,大多需要厂商开放root权限 目前获取系统权限的总结有三种方式(均有实际应用) platform签名 root固件 (有su) 调用厂商 ...

最新文章

  1. 一本算法刷题必读配套书(附链接)
  2. APUE读书笔记 之 进程关系
  3. Python 技术篇-系统、环境变量配置后python不生效问题解决方法,python服务命令行重启方法
  4. 基于Flask+Nginx+uWSGI实现CentOS服务端模型部署及预加载
  5. Flink SQL 1.11 on Zeppelin 平台化实践
  6. C++Builder STL 泛型
  7. PL/SQL异常处理
  8. Mac os安装SEAL
  9. 敏捷开发一千零一问系列之十八:长期受制于强势客户怎么办?(下)
  10. 机房收费系统重构版:照葫芦画瓢
  11. android下载模块封装,AndroidStudio 3.0 NDK开发2-AAR模块封装
  12. mysql socket错误处理_Mysql 报错处理
  13. fastdfs5.10 centos6.9 安装配置
  14. [android开发IDE]adt-bundle-windows-x86的一个bug:无法解析.rs文件--------rs_core.rsh file not found...
  15. SQL语法提示工具SQL Prompt 发布v10.6
  16. Python爬虫xpath爬取美女图片
  17. Python3的对象和类
  18. 酷派把用户手机当肉鸡,非一天两天
  19. python有什么颜色_Python中常见颜色记录
  20. java计算机毕业设计商场VIP管理系统源码+系统+数据库+lw文档+mybatis+运行部署

热门文章

  1. Jenkins——Jenkins+harbor+gitlab(git) 部署maven项目
  2. Android中的UID和AppId
  3. “先进”的飞书为何搞不定钉钉?
  4. html 水平、垂直 菜单栏
  5. 【ITool】excel导入导出工具
  6. ASCII码表字母大小写相差32的原因分析
  7. ☆【容斥原理】【SCOI2010】幸运数字
  8. Flume防止重复消费——断点续传
  9. 三种代码生成炫酷代码雨(推荐)
  10. 花式感染 Windows PE 病毒的一百种方法,你中过招吗?