如何使用由travist/jsencrypt加密的phpseclib类Crypt_RSA解密数据

如何使用由travist/jsencrypt加密的phpseclib类Crypt_RSA解密数据,php,rsa,phpseclib,jsencrypt,Php,Rsa,Phpseclib,Jsencrypt,im使用带有nginx、mysql、php7.3的linux-ubuntu服务器 我正在尝试使用公共rsa密钥加密消息,该密钥是在服务器端使用phpseclib()生成的 然后我尝试使用生成的密钥通过JSEncrypt library()对消息进行加密和解密,到目前为止,它是有效的 var crypt=new JSEncrypt(); var public_key='在phpseclib中执行实际解密操作之前,请尝试添加以下内容: $rsa->setEncryptionMode(

im使用带有nginx、mysql、php7.3的linux-ubuntu服务器

  • 我正在尝试使用公共rsa密钥加密消息,该密钥是在服务器端使用phpseclib()生成的
  • 
    
  • 然后我尝试使用生成的密钥通过JSEncrypt library()对消息进行加密和解密,到目前为止,它是有效的


  • 
    var crypt=new JSEncrypt();
    
    var public_key='在phpseclib中执行实际解密操作之前,请尝试添加以下内容:

    $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
    

    默认情况下,phpseclib使用更安全但不太常见的OAEP填充。

    在phpseclib中执行实际解密操作之前,请尝试添加此填充:

    $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
    

    默认情况下,phpseclib使用更安全但不太常见的OAEP填充。

    正如neubert所说,我必须添加这一行$rsa->setEncryptionMode(CRYPT_rsa_ENCRYPTION_PKCS1);在执行加密操作之前 然后使用函数从将RSA密钥从DER转换为PEM格式,然后在crypt.setPublicKey()中进行设置:

    
    

    谢谢

    正如neubert所说,我必须添加这一行$rsa->setEncryptionMode(CRYPT\u rsa\u ENCRYPTION\u PKCS1);在执行加密操作之前 然后使用函数从将RSA密钥从DER转换为PEM格式,然后在crypt.setPublicKey()中进行设置:

    
    

    谢谢

    我也有同样的问题,那是因为编码问题,所以请确保在php方面

    $enc =   base64_decode ($request->encrypted);
    

    我有同样的问题,这是因为编码问题,所以请确保在php方面

    $enc =   base64_decode ($request->encrypted);
    

    您不知道在jsencrypt中默认使用的填充可以从PSKC1切换到OEAP吗?您不知道在jsencrypt中默认使用的填充可以从PSKC1切换到OEAP吗?