小编GFa*_*con的帖子

Android RSA解密(失败)/服务器端加密(openssl_public_encrypt)

我试图使用我的设备上生成的RSA密钥解密我的Android应用程序中的字符串.加密是由php服务完成的,使用我的应用程序提供的public rsa密钥.我的问题是解密,但失败了.

我正在做以下事情:

  • 在Android上生成KeyPair(使用KeyPairGenerator.getInstance("RSA")) - >确定

  • 两个密钥(公共和私有)在使用Base64.encode(pubKey.getEncoded())进行"base64"编码后保存到文件中,并与私钥相同. - >好的

  • 当我调用我的webservice时,我将我的公钥(在base 64中)传递给post变量 - > OK

  • Web服务(php服务)使用openssl_public_encrypt函数使用公钥加密短字符串.加密的字符串将转换为base64. - >好像,函数不返回FALSE.

  • 应用程序检索服务的结果,并对其进行解码(Base64.decode()) - > OK(我已检查,收到的字节与openssl_public_encrypt()函数生成的字节匹配)

  • 最后一件事是解密这个字符串,我正在做以下事情: - >不行

    密码密码= Cipher.getInstance("RSA");

    cipher.init(Cipher.DECRYPT_MODE,privateKey);

    byte [] decryptedBytes = cipher.doFinal(cryptedBytes);

    String decryptedString = new String(decryptedBytes);

    的System.out.println(decryptedString);

解密的结果与我的原始字符串不匹配.

我错过了什么?

encryption android openssl rsa

2
推荐指数
1
解决办法
2385
查看次数

标签 统计

android ×1

encryption ×1

openssl ×1

rsa ×1