作者 邓超

优化

@@ -551,3 +551,61 @@ function get_request_origin(){ @@ -551,3 +551,61 @@ function get_request_origin(){
551 function abort(string $message = ''){ 551 function abort(string $message = ''){
552 throw new Exception($message); 552 throw new Exception($message);
553 } 553 }
  554 +
  555 +/**
  556 + * 加密base64
  557 + * @param string $str
  558 + * @return string 第一位是随机数长度 后N位是随机数 后面是加密的数字组合 统一个字符串的组合根据随机数的长度而定
  559 + * @author:dc
  560 + * @time 2024/12/20 11:21
  561 + */
  562 +function base64_en_md5(string $str){
  563 + $str = base64_encode($str);
  564 + $r = rand(12,30); // TODO::随机数最低不能小于10
  565 + $enStr = '*********************************************';
  566 + $enStr = substr($enStr,0,$r).'0123456789+qwertyuiopasdfghjklzxcvbnm/QWERTYUIOPASDFGHJKLZXCVBNM';
  567 + $enStr = str_split($enStr);
  568 + foreach ($enStr as $k=>$e){
  569 + if($e=='*'){
  570 + unset($enStr[$k]);
  571 + }
  572 + }
  573 + $enStr = array_flip($enStr);
  574 + $strs = array_map(function ($v) use ($enStr){
  575 + if($v=='='){
  576 + return '';
  577 + }
  578 + return $enStr[$v];
  579 + },str_split($str));
  580 +
  581 + return (string) strlen((string) $r).$r.implode('',$strs);
  582 +}
  583 +
  584 +/**
  585 + * 解密 base64
  586 + * @param string $str
  587 + * @return false|string
  588 + * @author:dc
  589 + * @time 2024/12/20 11:51
  590 + */
  591 +function base64_de_md5(string $str){
  592 + $f = substr($str,0,1);
  593 + $r = substr($str,1,$f);
  594 + $enStr = '*********************************************';
  595 + $enStr = substr($enStr,0,$r).'0123456789+qwertyuiopasdfghjklzxcvbnm/QWERTYUIOPASDFGHJKLZXCVBNM';
  596 + $enStr = str_split($enStr);
  597 + foreach ($enStr as $k=>$e){
  598 + if($e=='*'){
  599 + unset($enStr[$k]);
  600 + }
  601 + }
  602 +
  603 + $str = substr($str,$f+1);
  604 +
  605 + $strs = array_map(function ($v) use ($enStr){
  606 + return $enStr[$v];
  607 + },str_split($str,$f));
  608 +
  609 + return base64_decode(implode('',$strs).'==');
  610 +
  611 +}
@@ -255,7 +255,7 @@ class MailFun { @@ -255,7 +255,7 @@ class MailFun {
255 ); 255 );
256 } 256 }
257 // 随机字符串使用 这个用来追踪邮件,请不要删除 257 // 随机字符串使用 这个用来追踪邮件,请不要删除
258 - $randStr = rand(100,99999).'_'.md5($mail->Username.$mail->Subject.$mail->getToAddresses()[0][0]??''); 258 + $randStr = rand(100,99999).'_'.$email['id'].'_'.base64_en_md5($mail->getToAddresses()[0][0]??'');
259 $data['body'] = str_replace( 259 $data['body'] = str_replace(
260 '{mail#randStr24#}', 260 '{mail#randStr24#}',
261 $randStr, 261 $randStr,