从.cer文件生成公钥在Android 28上不起作用可能是由于以下原因:
解决这个问题的一种方法是使用Android提供的KeyStore和相关API来加载证书并提取公钥。以下是一个示例代码:
import java.io.InputStream;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
public class PublicKeyExtractor {
public static PublicKey extractPublicKey(InputStream certificateInputStream) {
try {
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(certificateInputStream);
return certificate.getPublicKey();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
你可以将.cer文件的InputStream传递给extractPublicKey
方法,它将返回一个PublicKey对象。请注意,这只是一个简单的示例代码,你可能需要根据你的具体需求进行适当的修改。
在Android上使用公钥的应用场景包括数字签名验证、加密通信等。对于腾讯云相关产品,你可以考虑使用腾讯云的SSL证书服务来管理和使用证书。你可以在腾讯云SSL证书服务的官方文档中找到更多详细信息和相关产品介绍:腾讯云SSL证书服务。
请注意,以上答案仅供参考,具体解决方法可能因实际情况而异。建议在实际开发中参考官方文档、开发者社区和相关资源来获取更准确和全面的信息。
领取专属 10元无门槛券
手把手带您无忧上云