加密:
public function encrypt($data){
$crypted = [];
$data = json_encode($data);
$publicKey = openssl_pkey_get_public(file_get_contents($this->publicKeyPath));
$dataArray = str_split($data, 117);
foreach($dataArray as $subData){
$subCrypted = null;
openssl_public_encrypt($subData, $subCrypted, $publicKey);
$crypted[] = $subCrypted;
}
$this->log($data);
return base64_encode(implode('',$crypted));
}
解密:
public function decrypt($data){
$decrypted = [];
$data = base64_decode($data);
$privateKey = openssl_pkey_get_private(file_get_contents($this->privateKeyPath));
$dataArray = str_split($data, 128);
foreach($dataArray as $subData){
$subDecrypted = null;
openssl_private_decrypt($subData, $subDecrypted, $privateKey);
$decrypted[] = $subDecrypted;
}
$decrypted = implode('',$decrypted);
$this->log($decrypted);
return json_decode($decrypted, true);
}