话不多说直接上代码
/**
* @param $str 参数
* @return false|mixed|string
*/
private function _encryptSha256($str)
{
if (empty($str)) return $str;
$file_path =$this->rsa_private_key;
if(file_exists($file_path)) {
$pri_key = file_get_contents($file_path);//将整个文件内容读入到一个字符串中
}
//转换为openssl密钥,必须是没有经过pkcs8转换的私钥
$res = openssl_get_privatekey($pri_key);
if(!$res)return false;//秘钥不可用
//调用openssl内置签名方法,生成签名$sign
openssl_sign($str, $sign, $res);
openssl_free_key($res);
$sign = base64_encode($sign);
//sign转换为大写
return strtoupper($sign);
}