zoukankan      html  css  js  c++  java
  • JDK的KEYTOOL的应用,以及签署文件的应用(原创)

    首先,我是这样的情况下学到这部分知识的:

    我们公司同事把自己的unity生成的APK包查出MD5值直接拿出去微信那边申请,当然这样本来是没毛病,毕竟当时只有他一个人开发这个游戏,

    然而我们几个前端过去接手工作,要用他的那个工程文件作发包测试,发现微信不能回调,卡在登陆和选取微信位置来回,就是读不了微信的

    个人信息,我就一路查,发现其实是微信登陆申请的时候要提交MD5值,然而我们电脑发的APK包当然和他的APK包的MD5值不一样,所以微信

    是不允许你回调的,因为我们的APK包没有申请,公司也不可能为每个人申请一个,因为一个微信登陆申请就300块,如果公司有10个前端就是3000,

    以后再作新浪啊,其他的申请,岂不是更多钱,所以这个做法没意义。后来找到最终解决办法,就是让我们的电脑发的包也跟他电脑发的包的MD5值

    一样。就是用签名文件发包。方法如下:

       第一步:生成自己的签名文件

    打开自己JDK目录下的BIN目录,然后按住shift键+右键(直接用该目录下打开CMD(CM-DOS))如图:

    WIN10是这样的

    WIN7或者一下的是这样的

    然后点击“在此处打开powershell窗口”(WIN10为例子,

    win7语句不一样,不过也差不多,我的系统是win10),然后如图:

    使用keytool命令生成证书:

    keytool 

    -genkey 

    -alias tomcat(别名) 

    -keypass 123456(别名密码) 

    -keyalg RSA(算法) 

    -keysize 1024(密钥长度) 

    -validity 365(有效期,天单位) 

    -keystore D:/keys/tomcat.keystore(指定生成证书的位置和证书名称) 

    -storepass 123456(获取keystore信息的密码)

    方便复制版:

    keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/tomcat.keystore -storepass 123456

    注意:生成的key.store文件的文件夹要自己先建立,不然会提示找不到路径报错 (365是KEY的过期时间单位是天,123456是打开密钥的密码,前面是使用密码,后面是发包密码,可以是一样,这个根据自己情况设置)

    回车执行后如下图:

    点击回车即可在D:/keys/文件夹内生成名为:tomcat.keystore的文件。当然 内容是根据你情况来定。

    成功后无提示信息

    注意:

    提示输入的名字可以是域名不能输入IP地址

    如果出现这个提示就是你没建立当前路径文件夹或者路径不对

    有了这个文件以后,查看该文件的MD5值,拿这个值来申请微信登陆等第三方许可

    找到这个文件所在的文件夹,如图

    按住shift+右键 点“在此处打开powershell窗口”

    如图:

    然后输入:

     keytool -list -v -keystore +文件名.store  按回车如图

    然后输入之前设定的密码,我这里是123456,然后回车, 输入的时候是看不到的,所以保证自己没手残!

    然就可以查看该签名文件的MD5值。

    最后,我们依赖这个文件来做一个“个人定制的”APK就可以了!这个APK的MD5值会跟这个签名文件的MD5值一样,然又跟我们申请的微信的一样,这样微信就可以回调!

    这里以UNITY为例子,android-studio或者Eclipse 我就不具例子

    打开unity->File->BuildSettings->点player settings 如图:

    在inspector面板点安卓图标

    然后如图点 publishing settings

    然后如图点勾选use existing keys 再点browse keystore选取路径

    在keystore输入发布密码 我这里是123456,然后如图

    点击Usigned(debug)选取自己的keystore文件名,我这里是tomcat,如图

    这里输入是打开签名文件密码,(也就是前面第一个123456那里的密码)我这里依然123456

    最后点build 发布APK包就可以了!

    最后我们还有验证我们的成果,依然旧套路,打开APK包的文件夹,shift+右键 点在此处打开powersell ,输入

    keytool -printcert -jarfile(APK包名)xxx.apk 

    如图

    回车如图

    成功让MD5值与签名文件的一致! 这样的话只要有这个文件的,就可以发布当前申请微信的APK包!

    额外测试:

    不用签名文件发包情况!如图

    最后出来的APK包 测试出来的MD5值如下

    跟原来出来的包不一样的!

    总结:这个是unity自身带的DEBUG.STORE的签名文件打出来的包,这个签名文件很多第三方都不许可的,人家会知道这个是unity默认给你一个的签名文件,就算你审核通过,也就你一台电脑能用,因为这个文件你是找不出来的,就算找出来文件内容都是unity自己搞的。所以我们要用一个公用的签名文件拿来各种第三方申请。以后这个文件用作项目打包用,不然很多第三方SDK是用不了的!

  • 相关阅读:
    C++ 获取图片文件信息
    java中redis的分布式锁工具类
    java中的redis工具类
    mysql中的sql查询优化
    利用Linux中的crontab实现分布式项目定时任务
    MYSQL的REPLACE和ON DUPLICATE KEY UPDATE使用
    redis学习三,Redis主从复制和哨兵模式
    redis学习五,redis集群搭建及添加主从节点
    String 转化成java.sql.Date和java.sql.Time
    SpringMVC配置双数据源,一个java项目同时连接两个数据库
  • 原文地址:https://www.cnblogs.com/xxxtony/p/7689353.html
Copyright © 2011-2022 走看看