PHP实现的AES双向加密解密功能示例【128位】

PHP实现的AES双向加密解密功能。具体如下:

  <?php  /*   * Created on 2018-9-1   *   * To change the template for this generated file go to   * Window - Preferences - PHPeclipse - PHP - Code Templates   */   /**   用法:   Security::encrypt($str,$key);   Security::decrypt($str,$key);   */   class Security {    public static function encrypt($input, $key) {     $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);     $input = Security::pkcs5_pad($input, $size);     $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');     $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);     mcrypt_generic_init($td, $key, $iv);     $data = mcrypt_generic($td, $input);     mcrypt_generic_deinit($td);     mcrypt_module_close($td);     $data = base64_encode($data);     return $data;    }    private static function pkcs5_pad ($text, $blocksize) {     $pad = $blocksize - (strlen($text) % $blocksize);     return $text . str_repeat(chr($pad), $pad);    }    public static function decrypt($sStr, $sKey) {     $decrypted= mcrypt_decrypt(      MCRYPT_RIJNDAEL_128,      $sKey,      base64_decode($sStr),      MCRYPT_MODE_ECB     );     $dec_s = strlen($decrypted);     $padding = ord($decrypted[$dec_s-1]);     $decrypted = substr($decrypted, 0, -$padding);     return $decrypted;    }   }  //用法示例:  $str = "www.zzaxw.com";  $key = "123456";  echo "原始字符串:".$str."<br/>";  $pwdstr = Security::encrypt($str,$key);  echo "加密后:".$pwdstr."<br/>";  $destr = Security::decrypt($pwdstr,$key);  echo "解密结果:".$destr;  ?>

运行结果:

原始字符串:www.zzaxw.com
加密后:O0vbyikeZRVnXueCodfSFw==
解密结果:www.zzaxw.com

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论