现有php代码片段:
$public_key = file_get_contents('./public.crt');
$pu_key = openssl_pkey_get_public($public_key);
$encrypted = "";
//demo Array
$data = Array(
Array(
'name' => '张三',
'phone' => 13800138000,
'pubdate' => 1413952582,
'Msg' => '随便几个字!',
'model' => '具体的模式'
),
Array(
'name' => '李四',
'phone' => 13900139000,
'pubdate' => 1413952582,
'Msg' => '随便打几个!',
'model' => '具体的模式'
)
);
$data = json_encode($data);
openssl_public_encrypt($data,$encrypted,$pu_key);
后面的就省掉了,问题在于最后1个函数openssl_public_encrypt(),明文$data按找现有的数组元素长度,2个的时候可以进行加密,当元素是3个的时候,加密失败,$encrypted为空,函数有没执行的感觉,问了下度娘,说明文长度最大为公钥长度-11,我的公钥长度是128,那明文最长也就117,怎么才能在使用现有的公钥基础上不限定明文长度进行加密,并且可以用私钥进行解密呢?
求指点
$public_key = file_get_contents('./public.crt');
$pu_key = openssl_pkey_get_public($public_key);
$encrypted = "";
//demo Array
$data = Array(
Array(
'name' => '张三',
'phone' => 13800138000,
'pubdate' => 1413952582,
'Msg' => '随便几个字!',
'model' => '具体的模式'
),
Array(
'name' => '李四',
'phone' => 13900139000,
'pubdate' => 1413952582,
'Msg' => '随便打几个!',
'model' => '具体的模式'
)
);
$data = json_encode($data);
openssl_public_encrypt($data,$encrypted,$pu_key);
后面的就省掉了,问题在于最后1个函数openssl_public_encrypt(),明文$data按找现有的数组元素长度,2个的时候可以进行加密,当元素是3个的时候,加密失败,$encrypted为空,函数有没执行的感觉,问了下度娘,说明文长度最大为公钥长度-11,我的公钥长度是128,那明文最长也就117,怎么才能在使用现有的公钥基础上不限定明文长度进行加密,并且可以用私钥进行解密呢?
求指点