温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中AES加密算法的示例分析

发布时间:2021-08-31 14:09:15 阅读:170 作者:小新 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

小编给大家分享一下PHP中AES加密算法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体如下:

<?php
class MCrypt {
  private $hex_iv '00000000000000000000000000000000'# converted JAVA byte code in to HEX and placed it here
  private $key 'U1MjU1M0FDOUZ.Qz'#Same as in JAVA
  function __construct({
    $this->key = hash('sha256'$this->key, true);
    //echo $this->key.'<br/>';
  }
  function encrypt($str{
    $td mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
    mcrypt_generic_init($td$this->key, $this->hexToStr($this->hex_iv));
    $block mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $pad $block - (strlen($str) % $block);
    $str .= str_repeat(chr($pad), $pad);
    $encrypted mcrypt_generic($td$str);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    return base64_encode($encrypted);
  }
  function decrypt($code{
    $td mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
    mcrypt_generic_init($td$this->key, $this->hexToStr($this->hex_iv));
    $str mdecrypt_generic($tdbase64_decode($code));
    $block mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    return $this->strippadding($str);
  }
  /*
   For PKCS7 padding
   */
  private function addpadding($string$blocksize 16) {
    $len strlen($string);
    $pad $blocksize - ($len $blocksize);
    $string .= str_repeat(chr($pad), $pad);
    return $string;
  }
  private function strippadding($string) {
    $slast ord(substr($string, -1));
    $slastc chr($slast);
    $pcheck substr($string, -$slast);
    if (preg_match("/$slastc{" . $slast "}/"$string)) {
      $string substr($string0strlen($string) - $slast);
      return $string;
    } else {
      return false;
    }
  }
  function hexToStr($hex)
  {
    $string='';
    for ($i=0$i strlen($hex)-1$i+=2)
    {
      $string .= chr(hexdec($hex[$i].$hex[$i+1]));
    }
    return $string;
  }
}
$encryption new MCrypt();
echo $encryption->encrypt('123456') . "<br/>";
echo $encryption->decrypt('tpyxISJ83dqEs3uw8bN/+w==');
?>

以上是“PHP中AES加密算法的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×