trait原创
# UuidTrait
# AppCryptTrait
点击查看
<?php
namespace App\Traits;
trait AppCryptTrait
{
public function encrypt($plaintext,string $cinpher='',string $key='',int $options=0,string $iv='',string $tag=''){
$cinpher = empty($cinpher)?config('custom.aes.openssl.method'):$cinpher;
$key = empty($key)?config('custom.aes.openssl.key'):$key;
$iv = empty($iv)?config('custom.aes.openssl.iv'):$iv;
$data = openssl_encrypt($plaintext, $cinpher, $key, $options, $iv, $tag);
return base64_encode($data);
}
public function decrypt(string $data,string $cipher_algo='',string $key='',int $options=0,string $iv='',string $tag=''){
$cipher_algo = empty($cipher_algo)?config('custom.aes.openssl.method'):$cipher_algo;
$passphrase = empty($passphrase)?config('custom.aes.openssl.key'):$passphrase;
$options = empty($options)?config('custom.aes.openssl.key'):$options;
$iv = empty($iv)?config('custom.aes.openssl.iv'):$iv;
$res = openssl_decrypt(base64_decode($data),$cipher_algo,$passphrase,$options,$iv,$tag);
return json_decode($res,true);// json_decode 将字符串转为PHP变量,true 返回 array 而非 object
}
}
通过use
在其他地方引入,使用$this->encrypt $this->decrypt
调用。
上次更新: 2022/08/23, 18:12:45