首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASN.1编码routines:OPENSSL_internal:WRONG_TAG

ASN.1编码routines:OPENSSL_internal:WRONG_TAG
EN

Stack Overflow用户
提问于 2017-06-18 23:26:39
回答 0查看 5.8K关注 0票数 2

此错误意味着什么:

代码语言:javascript
复制
java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0c0000b9:ASN.1 encoding routines:OPENSSL_internal:WRONG_TAG

我的代码是:

代码语言:javascript
复制
public static byte[] encryptByPublicKey(byte[] data, String key)
        throws Exception {

    key = key.replace("-----BEGIN RSA PUBLIC KEY-----\r\n", "").replace("-----END RSA PUBLIC KEY-----", "");

    byte[] bytes = decryptBASE64(key);
    X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(bytes);

    KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
    PublicKey pkPublic = keyFactory.generatePublic(x509KeySpec);

    Cipher pkCipher = Cipher.getInstance("RSA");
    pkCipher.init(Cipher.ENCRYPT_MODE, pkPublic);

    return pkCipher.doFinal(data);
}

我确信,我有正确的数据和密钥(在php中创建的),但我得到以下错误:

代码语言:javascript
复制
        PublicKey pkPublic = keyFactory.generatePublic(x509KeySpec);

在我的其他android (没有php服务器)应用程序中,这个代码没有任何问题,而且我通过相同的加密/解密代码得到了正确的答案。

有没有可能在两个项目中使用的函数,具有相同的输入和输出值,在相同的软件中,具有不同的操作?是!这是可能的,但是Android Studio和Phpstorm呢?是关于Openssl cer的吗?或者其他库?或者其他一些原因?我如何克服这个错误?

如果你能帮我,我将不胜感激。提前感谢你的回答。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44616565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档