<?php
namespace app\common\library;
use think\Config;
class CreateKey
{
public $config=array(
'digest_alg'=>'sha256',
'private_key_bits'=>1024,
'private_key_type'=>OPENSSL_KEYTYPE_RSA,
);
public $res;
public function __construct(){
$conf = Config::get('site');
$this->config['config']=$conf['ssl_config'];
$this->res=openssl_pkey_new($this->config);
}
public function getPrivateKey(){
openssl_pkey_export($this->res, $private_key,null,$this->config);
return $private_key;
}
public function getPublicKey(){
$result=openssl_pkey_get_details($this->res);
$public_key=$result['key'];
return $public_key;
}
public function PrivateEncrypt($data,$private_key){
openssl_private_encrypt($data,$encrypted,$private_key);
return $encrypted;
}
public function PublicDecrypt($encrypted,$public_key){
openssl_public_decrypt($encrypted, $decrypted, $public_key);
return $decrypted;
}
public function PublicEncrypt($data,$public_key){
openssl_public_encrypt($data, $encrypted, $public_key);
return $encrypted;
}
public function PrivateDecrypt($encrypted,$private_key){
openssl_private_decrypt($encrypted, $decrypted, $private_key);
return $decrypted;
}
}
|