<?php
 
  namespace vendor;   class EncryptionTool{       public static function enAES($originTxt, $key): string{           return base64_encode(openssl_encrypt($originTxt, 'AES-128-ECB',$key, OPENSSL_RAW_DATA));     }       public static function deAES($originTxt, $key): string{           $data = base64_decode($originTxt);         return openssl_decrypt($data,'AES-128-ECB',$key, OPENSSL_RAW_DATA);     }      }
 
  class DES {     
 
      protected $method;     
 
      protected $key;     
 
      protected $output;     
 
      protected $iv;     
 
      protected $options;          const OUTPUT_NULL = '';     const OUTPUT_BASE64 = 'base64';     const OUTPUT_HEX = 'hex';     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
      public function __construct($key, $method = 'DES-ECB', $output = '', $iv = '', $options = OPENSSL_RAW_DATA | OPENSSL_NO_PADDING)     {         $this->key = $key;         $this->method = $method;         $this->output = $output;         $this->iv = $iv;         $this->options = $options;     }     
 
 
 
 
      public function encrypt($str)     {         $str = $this->pkcsPadding($str, 8);         $sign = openssl_encrypt($str, $this->method, $this->key, $this->options, $this->iv);         if ($this->output == self::OUTPUT_BASE64) {             $sign = base64_encode($sign);         } else if ($this->output == self::OUTPUT_HEX) {             $sign = bin2hex($sign);         }         return $sign;     }     
 
 
 
 
      public function decrypt($encrypted)     {         if ($this->output == self::OUTPUT_BASE64) {             $encrypted = base64_decode($encrypted);         } else if ($this->output == self::OUTPUT_HEX) {             $encrypted = hex2bin($encrypted);         }         $sign = @openssl_decrypt($encrypted, $this->method, $this->key, $this->options, $this->iv);         $sign = $this->unPkcsPadding($sign);         $sign = rtrim($sign);         return $sign;     }     
 
 
 
 
 
      private function pkcsPadding($str, $blocksize)     {         $pad = $blocksize - (strlen($str) % $blocksize);         return $str . str_repeat(chr($pad), $pad);     }     
 
 
 
 
      private function unPkcsPadding($str)     {         $pad = ord($str{strlen($str) - 1});         if ($pad > strlen($str)) {             return false;         }         return substr($str, 0, -1 * $pad);     } }
 
 
  define('RSA_PUBLIC', '-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmkANmC849IOntYQQdSgLvMMGm 8V/u838ATHaoZwvweoYyd+/7Wx+bx5bdktJb46YbqS1vz3VRdXsyJIWhpNcmtKhY inwcl83aLtzJeKsznppqMyAIseaKIeAm6tT8uttNkr2zOymL/PbMpByTQeEFlyy1 poLBwrol0F4USc+owwIDAQAB -----END PUBLIC KEY-----');
  define('RSA_PRIVATE','-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKaQA2YLzj0g6e1h BB1KAu8wwabxX+7zfwBMdqhnC/B6hjJ37/tbH5vHlt2S0lvjphupLW/PdVF1ezIk haGk1ya0qFiKfByXzdou3Ml4qzOemmozIAix5ooh4Cbq1Py6202SvbM7KYv89syk HJNB4QWXLLWmgsHCuiXQXhRJz6jDAgMBAAECgYAIF5cSriAm+CJlVgFNKvtZg5Tk 93UhttLEwPJC3D7IQCuk6A7Qt2yhtOCvgyKVNEotrdp3RCz++CY0GXIkmE2bj7i0 fv5vT3kWvO9nImGhTBH6QlFDxc9+p3ukwsonnCshkSV9gmH5NB/yFoH1m8tck2Gm BXDj+bBGUoKGWtQ7gQJBANR/jd5ZKf6unLsgpFUS/kNBgUa+EhVg2tfr9OMioWDv MSqzG/sARQ2AbO00ytpkbAKxxKkObPYsn47MWsf5970CQQDIqRiGmCY5QDAaejW4 HbOcsSovoxTqu1scGc3Qd6GYvLHujKDoubZdXCVOYQUMEnCD5j7kdNxPbVzdzXll 9+p/AkEAu/34iXwCbgEWQWp4V5dNAD0kXGxs3SLpmNpztLn/YR1bNvZry5wKew5h z1zEFX+AGsYgQJu1g/goVJGvwnj/VQJAOe6f9xPsTTEb8jkAU2S323BG1rQFsPNg jY9hnWM8k2U/FbkiJ66eWPvmhWd7Vo3oUBxkYf7fMEtJuXu+JdNarwJAAwJK0YmO LxP4U+gTrj7y/j/feArDqBukSngcDFnAKu1hsc68FJ/vT5iOC6S7YpRJkp8egj5o pCcWaTO3GgC5Kg== -----END PRIVATE KEY-----');
 
 
 
  $password='xiaodisec';
 
  echo "原始数据:$password". "<br/>"; echo "MD5加密后:".md5($password). "<hr/>";
 
 
  echo "原始数据:$password". "<br/>"; echo "BASE64编码后:".base64_encode($password). "<hr/>";
 
 
  echo "原始数据: " . $password . "<br/>"; $data = EncryptionTool::enAES($password, "1234567891234567"); echo "AES加密后: " . $data . "<hr/>";
 
 
 
  echo "原始数据:$password". "<br/>"; $key = 'key123456'; $iv = 'iv123456';
  echo 'DES CBC 加解密:'; $des = new DES($key, 'DES-CBC', DES::OUTPUT_BASE64, $iv); echo $base64Sign = $des->encrypt($password); echo "<br>";
  echo "<hr>";
  echo "原始数据:$password". "<br/>"; echo 'DES ECB 加解密:'; $des = new DES($key, 'DES-ECB', DES::OUTPUT_BASE64); echo $base64Sign = $des->encrypt($password); echo "<hr>";
 
 
 
 
  $public_key = openssl_pkey_get_public(RSA_PUBLIC);  if(!$public_key){     die('公钥不可用'); }
  $return_en = openssl_public_encrypt($password, $crypted, $public_key); if(!$return_en){     return('加密失败,请检查RSA秘钥'); } $eb64_cry = base64_encode($crypted); echo "RSA公钥加密数据:".$eb64_cry; echo "<br>";
 
 
  $private_key = openssl_pkey_get_private(RSA_PRIVATE); if(!$private_key){     die('私钥不可用'); } $return_de = openssl_private_decrypt(base64_decode($eb64_cry), $decrypted, $private_key); if(!$return_de){     return('解密失败,请检查RSA秘钥'); } echo "RSA私钥解密数据:".$decrypted; echo "<hr>";
 
 
  $private_key = openssl_pkey_get_private(RSA_PRIVATE); if(!$private_key){     die('私钥不可用'); } $return_en = openssl_private_encrypt($password, $crypted, $private_key); if(!$return_en){     return('加密失败,请检查RSA秘钥'); } $eb64_cry = base64_encode($crypted); echo "RSA私钥加密数据".$eb64_cry; echo "<br>";
 
  $public_key = openssl_pkey_get_public(RSA_PUBLIC); if(!$public_key){     die('公钥不可用'); } $return_de = openssl_public_decrypt(base64_decode($eb64_cry), $decrypted, $public_key); if(!$return_de){     return('解密失败,请检查RSA秘钥'); } echo "RSA公钥解密数据:".$decrypted; echo "<hr>";
  ?>
 
   |