如何仿做别人的网站,搜索引擎优化seo信息,微信公众号做电影网站要域名吗,口碑好的常州做网站因为近期刚针对各应用平台对APP备案时间节点要求进行了统一整理#xff0c;然后隔天就被要求提供一下app相关的的公钥和MD5#xff0c;虽然很快就解决了这个事情#xff0c;但忍不住又稍微衍生了一下#xff0c;但行小步#xff0c;莫问远方吧 关联Blog
APP备案(Android)… 因为近期刚针对各应用平台对APP备案时间节点要求进行了统一整理然后隔天就被要求提供一下app相关的的公钥和MD5虽然很快就解决了这个事情但忍不住又稍微衍生了一下但行小步莫问远方吧 关联Blog
APP备案(Android) - 各应用平台对APP备案时间节点要求APP备案(Android) - 获取签名证书公钥、MD5
Tip如果着急获取公钥和MD5可以直接用便捷工具反之有兴趣的话可以看看其他获取公钥和MD5的方式 基础认知证书公钥Public KeyMD5Message Digest Algorithm 5 便捷工具公钥、MD5 核心方式准备工作公钥MD5 核心方式 - MD5异常场景处理方式环境介绍signingReport可用jadx 验证未亲测应可用RSA文件亲测未必全有效 基础认知
证书公钥Public Key
加密通信 在公钥加密系统中公钥用于加密数据而私钥用于解密。在安全通信中通信双方可以交换公钥并使用对方的公钥加密数据保证了数据的机密性。数字签名验证 证书公钥也用于验证数字签名。数字签名是对数据的摘要通过使用私钥对摘要进行签名然后使用公钥来验证签名的有效性。这确保了数据的完整性和真实性。
MD5Message Digest Algorithm 5 需要注意的是MD5 目前不再被认为是安全的加密算法因为它容易受到碰撞攻击多个不同的输入产生相同的摘要。在安全性要求较高的情况下应考虑使用更强大的哈希算法例如 SHA-256 或 SHA-3。 数据完整性 MD5 是一种哈希函数用于生成数据的唯一固定长度的摘要。这个摘要通常用于验证数据的完整性。如果原始数据发生变化其 MD5 摘要也会发生变化因此接收方可以比较原始数据的 MD5 摘要以检测是否存在任何篡改。文件校验 MD5 常用于校验文件完整性。在下载文件后可以计算文件的 MD5 值并与提供的 MD5 值进行比较以确保文件未被损坏或篡改。密码存储 尽管 MD5 不再被推荐用于密码存储但在过去的一些应用中它被用于生成密码的散列值。现代应用通常使用更安全的哈希算法如 SHA-256。
便捷工具
近期基本所有国内Android应用平台因为工信部的要求都需要进行APP备案在APP备案中需要提供公钥、MD5所以很多工具app应运而生这种工具我并不确定是否以后还一直可以使用故除此之外我还提供了另一种核心方式万变不离其中~
APP备案助手 公钥、MD5 核心方式
准备工作
因为我是使用Demo做演练所以我需要先 生成 keystore、jks 签名证书然后在 反编译keystore、jks签名证书 获取部分信息
#生成jsk格式的签名证书
keytool -genkeypair -v -keystore testkeyly.jks -keyalg RSA -keysize 2048 -validity 10000 -alias testkeyly -storetype JKS公钥
通过 keytool 工具获取签名证书
#示例 your_alias、your_keystore 分别输入自己的签名信息 certificate 证书名称可自行更改
keytool -export -alias your_alias -file certificate.cer -keystore your_keystore.keystore# demo 示例
keytool -export -alias tmpkey -file certificate.cer -keystore tmpkey.jks cmd操作结果 生成cer格式文件 直接在详细信息获取公钥即可 MD5 如果当前本地JDK环境用的1.8的话可以直接采用如下方式逆向获取证书信息节课如没有MD5则查看后续的异常处理方式 逆向签名 - keystore、jks签名文件
# 示例 xxx 输入自己的签名文件名即可
keytool.exe -list -v -keystore xxx.keystore或xxx.jks#demo 示例
keytool -list -v -keystore tmpkey.jks正常的话签名信息中可以看到MD5如下 看到这里可能你也遇到不正常的场景了… 例如签名信息中根本不包含MD5信息… 而且密钥库类型也不同… 核心方式 - MD5异常场景处理方式 查了一下资料发现可能高于JDK1.8的环境 移除了 这些 Disable MD5 or MD2 signed jars导致均无法通过 keyTool获取到 MD5 信息 环境介绍
当前环境
本地环境验证了一下我本地JDK版本已经到了11.0.18了 项目环境JDK1.8 Tip其实下面的方式都是曲线操作有兴趣的可以去看一下采用 openssl 获取MD5的方式因最近减法还没做完我就先不去深挖了有机会我再去浅学一下… signingReport可用
执行方式 默认配置并未设置签名信息故该处标红区域的MD5值不对
效果如图 在build.gradle中声明对应的签名信息然后重新执行该操作可参考debug模式下打出release签名包 jadx 验证未亲测应可用 早以前我就记录过 Jadx快速实现Apk反编译 这里就不再赘述了图就直接套了… APK signature
Modulus/模数 为公钥十进制显示的MD5 Fingerprint/MD5签名APP备案填写时需要去掉空格填写32位长度的十六进制数据 RSA文件亲测未必全有效 RAS本身是一种加密方式这里的RSA文件就是加密文件 将 apk 后缀改为 zip变为可压缩包 解压后进入 META-INF 找一个.RSA后缀文件如果没有该文件那么这个apk签名可能存在问题 4.使用 keytool命令获取MD5签名有的可能获取不到例如金融型app会进行特殊的二次加密
#xxx 替换成对应的rsa文件名即可
keytool -printcert -file xxx.RSA