Php openssl_public_加密方法不';不能加密超过118个字符

Php openssl_public_加密方法不';不能加密超过118个字符,php,encryption,Php,Encryption,我可以加密小字符串,但当它超过118个字符时,它似乎不起作用?有什么想法吗? private function encryptData($plaintext) { $plaintext = '{ "id":"1" "name":"Bottled Beer" "description":"" "parent_id":"111" "taxonomy":"SIMPLE_PLU" },{ "id":"2" "name":"Stout" }'; $publicKey = "../ssh

我可以加密小字符串,但当它超过118个字符时,它似乎不起作用?有什么想法吗?

private function encryptData($plaintext) {

    $plaintext = '{ "id":"1" "name":"Bottled Beer" "description":"" "parent_id":"111" "taxonomy":"SIMPLE_PLU" },{ "id":"2" "name":"Stout" }';

    $publicKey = "../ssh_keys/coasts/public/pub.pem";  

    $fp=fopen($publicKey,"r"); 
    $pub_key_string=fread($fp,8192); 
    fclose($fp); 

    $pubKey = openssl_pkey_get_public($pub_key_string);

    openssl_public_encrypt($plaintext, $encrypted, $pubKey);

    return $encrypted;
}

用于加密的普通数据的长度取决于密钥的长度,它不能大于密钥长度减去11的数字。例如,如果使用2048位键,则最大长度为2048/8-11=245

如果您需要处理超过该限制的数据,您可以将普通数据分成块,对每个块进行加密,并连接密码块(它们的长度始终等于密钥的字节长度)。当然,在解密连接的密码数据时也必须这样做。

用于加密的普通数据的长度取决于密钥的长度,它不能大于密钥长度减去11的数字。例如,如果使用2048位键,则最大长度为2048/8-11=245

如果您需要处理超过该限制的数据,您可以将普通数据分成块,对每个块进行加密,并连接密码块(它们的长度始终等于密钥的字节长度)。当然,在解密连接的密码数据时也必须这样做。

您使用的PHP版本是什么?根据“加密值必须小于密钥(由于用于实际加密的数学运算)”。您使用的PHP版本是什么?根据“加密值必须小于密钥”(由于用于实际加密的数学运算)“。