Fuz*_*gic 9 security android certificate license-key
我目前正在开发RPC服务供开发人员使用,但我想确保我可以区分另一个应用程序的调试密钥和他们的公钥.有没有办法检查另一个应用程序的密钥,并告诉它是否是调试密钥而不是已发布的应用程序密钥?
这样做的目的是能够告诉他们的应用程序何时处于开发或发布状态,因为我需要能够判断他们是应该访问我的开发服务器还是我的生产服务器.
默认情况下,Eclipse 使用的 androiddebugkey(例如)的notAfter日期和时间最多为未来 1 年 - Android Market 不接受如此短的值 - 您可以使用它来区分开发人员签名的构建吗?或者..您可以只检查应用程序使用的公钥 - 让他们使用他们应用程序的 android.content.pm.Signature 签署 RPC 请求?
PackageInfo pkgInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
对于(签名应用签名:pkgInfo.signatures){
// javax.security -不是java.security!
X509Certificate appCertificate = X509Certificate.getInstance(appSignature.toByteArray());
// appCertificate.getNotAfter() 可以给你证书过期的日期和时间
// appCertificate.getPublicKey() 可以为您提供用于签署 RPC 请求的公钥。
// appCertificate.getSubjectDN() 将为您提供一个名为“CN=Android Debug,O=Android,C=US”的主体,用于任何未经开发人员手工制作的调试证书。
}
| 归档时间: |
|
| 查看次数: |
2400 次 |
| 最近记录: |