<?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;
}
/**
* 公钥解密数据
* $encrypted:私钥加密的密文
* $public_key:公钥
*/
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;
}
}
php生成秘钥,加密,解密Rsa
最新推荐文章于 2023-06-06 13:35:32 发布