PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php实现的AES加密类定义与用法示例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP实现的AES加密类定义用法分享给大家供大家参考,具体如下:

CryptAES.class.PHP文件

PHP;">
cipher = $cipher;
 }
 public function set_mode($mode)
 {
 $this->mode = $mode;
 }
 public function set_iv($iv)
 {
 $this->iv = $iv;
 }
 public function set_key($key)
 {
 $this->secret_key = $key;
 }
 public function require_pkcs5()
 {
 $this->pad_method = 'pkcs5';
 }
 protected function pad_or_unpad($str,$ext)
 {
 if ( is_null($this->pad_method) )
 {
  return $str;
 }
 else
 {
  $func_name = __CLASS__ . '::' . $this->pad_method . '_' . $ext . 'pad';
  if ( is_callable($func_name) )
  {
  $size = mcrypt_get_block_size($this->cipher,$this->mode);
  return call_user_func($func_name,$str,$size);
  }
 }
 return $str;
 }
 protected function pad($str)
 {
 return $this->pad_or_unpad($str,'');
 }
 protected function unpad($str)
 {
 return $this->pad_or_unpad($str,'un');
 }
 public function encrypt($str)
 {
 $str = $this->pad($str);
 $td = mcrypt_module_open($this->cipher,'',$this->mode,'');
 if ( empty($this->iv) )
 {
  $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
 }
 else
 {
  $iv = $this->iv;
 }
 mcrypt_generic_init($td,$this->secret_key,$iv);
 $cyper_text = mcrypt_generic($td,$str);
 //$rt=base64_encode($cyper_text);
 $rt = bin2hex($cyper_text);
 mcrypt_generic_deinit($td);
 mcrypt_module_close($td);
 return $rt;
 }
 public function decrypt($str){
 $td = mcrypt_module_open($this->cipher,$iv);
 $decrypted_text = mdecrypt_generic($td,self::hex2bin($str));
 //$decrypted_text = mdecrypt_generic($td,base64_decode($str));
 $rt = $decrypted_text;
 mcrypt_generic_deinit($td);
 mcrypt_module_close($td);
 return $this->unpad($rt);
 }
 public static function hex2bin($hexdata) {
 $bindata = '';
 $length = strlen($hexdata);
 for ($i=0; $i < $length;="" $i="" +="2)" {="" $bindata="" .="chr(hexdec(substr($hexdata,$i,2)));" }="" return="" $bindata;="" }="" public="" static="" function="" pkcs5_pad($text,$blocksize)="" {="" $pad="$blocksize" -="" (strlen($text)="" %="" $blocksize);="" return="" $text="" .="" str_repeat(chr($pad),$pad);="" }="" public="" static="" function="" pkcs5_unpad($text)="" {="" $pad="ord($text{strlen($text)" -="" 1});="" if="" ($pad=""> strlen($text)) return false;
 if (strspn($text,chr($pad),strlen($text) - $pad) != $pad) return false;
 return substr($text,-1 * $pad);
 }
}
?>

大佬总结

以上是大佬教程为你收集整理的php实现的AES加密类定义与用法示例全部内容,希望文章能够帮你解决php实现的AES加密类定义与用法示例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: