Rsa加密和解密
代码:<?php
namespace addons\carplate\library;
use think\Config;
class Rsa
{
/**
* Rsa加密解密
* @params $data = json_encode(array('numberplate'=>'鲁B81Y01', 'carColor' => 0),JSON_UNESCAPED_UNICODE)
*/
public function RSA_openssl($data, $operate = 'encode')
{
// 系统参数配置
$site = Config::get("site");
//RSA 公钥
$rsa_public = $site['etc_pubkey'];
//RSA 公钥加密
if ('encode' == $operate) {
$public_key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($rsa_public, 64, "\n", true) . "\n-----END PUBLIC KEY-----";
$key = openssl_pkey_get_public($public_key);
if (!$key) {
// echo '公钥不可用';
return array('error_code' => 1001, 'error_msg' => '加密公钥不可用');
}
$return_en = openssl_public_encrypt($data, $crypted, $key);
if (!$return_en) {
// echo '公钥加密失败';
return array('error_code' => 1002, 'error_msg' => '公钥加密失败');
}
return base64_encode($crypted);
}
//RSA 公钥解密
if ('decode' == $operate) {
$public_key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($rsa_public, 64, "\n", true) . "\n-----END PUBLIC KEY-----";
$key = openssl_pkey_get_public($public_key);
if (!$key) {
// echo '公钥不可用';
return array('error_code' => 2001, 'error_msg' => '解密公钥不可用');
}
$return_de = openssl_public_decrypt(base64_decode($data), $decrypted, $key);
if (!$return_de) {
// echo '公钥解密失败';
return array('error_code' => 2002, 'error_msg' => '公钥解密失败');
}
return $decrypted;
}
}
}
页:
[1]