安卓sdk制作keystore

keystore

‌KeyStore是一个用于存储密钥和证书的安全容器‌。‌它提供了安全的方式来存储敏感信息,‌如密钥对、‌数字证书等,‌以防止它们被未授权的应用或攻击者访问。‌KeyStore通常用于加密数据、‌数字签名、‌TLS/SSL连接等场景。‌在Android开发中,‌KeyStore通过java.security.KeyStore类实现,‌并提供了特定于Android平台的实现AndroidKeyStore,‌后者提供了更高级的安全功能,‌如硬件支持和密钥链随机生成。‌KeyStore的使用有助于保护应用程序和系统的数据安全性和完整性‌

android生成sdk的keystore

步骤

  1. 编译sdk,注意user与userdebug编译出来的密钥与keystore是不相同的
    编译后生成的密钥目录分别对应如下,或可使用find命令搜索
    ./vendor/sprd/platform/packages/apps/Messaging/signature/release/platform.pk8
    ./vendor/sprd/platform/packages/apps/Messaging/signature/debug/platform.pk8
    ./vendor/sprd/platform/packages/apps/Messaging/signature/release/platform.x509.pem
    ./vendor/sprd/platform/packages/apps/Messaging/signature/debug/platform.x509.pem
  2. user版本则在relese目录,userdebug在debug目录下,把这个platform.pk8与platform.x509.pem拷贝出来
  3. 使用openssl及keytool命令生成keystore文件
openssl pkcs8 -in ./platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt

openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name r2

keytool -importkeystore -deststorepass123 -destkeypass 123 -destkeystore test.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -deststoretype JKS -srcstorepass 123 -alias r2

问题:

keytool如果参数或版本不对,可能会有这个警告:
Warning:
使用的 SHA1withRSA 签名算法被视为存在安全风险。此算法将在未来的更新中被禁用。

然后用这个生成的keystore,编译,编译会出错。
Failed to read key r2 from store “/opt/android/project/R2-Dict/r2_release.keystore”: Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available

解决

方法是keytool加参数 -deststoretype JKS

作者:帅得不敢出门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值