首页 > 编程 > PHP > 正文

php实现的AES加密类定义与用法示例php技巧

2020-03-22 18:24:23
字体:
来源:转载
供稿:网友
这篇文章主要介绍了php实现的AES加密类定义与用法,结合完整实例形式分析了基于php的AES加密类实现及使用方法,需要的朋友可以参考下

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

CryptAES.html' target='_blank'>class.php文件:

 ?phpclass CryptAES protected $cipher = MCRYPT_RIJNDAEL_128; protected $mode = MCRYPT_MODE_ECB; protected $pad_method = NULL; protected $secret_key =  protected $iv =  public function set_cipher($cipher) $this- 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-  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, , $this- mode,  if ( empty($this- iv) ) $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); else $iv = $this-  mcrypt_generic_init($td, $this- secret_key, $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, 0, -1 * $pad);? 

用法:

require_once( CryptAES.class.php $keyStr = ss4fs4skfhksk $aes = new CryptAES();$keyStr = $aes- hex2bin($keyStr);$aes- set_key($keyStr);$aes- require_pkcs5();$d = $aes- encrypt($data);

注:这里需要在php.ini中开启:extension=php_mcrypt.dll

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

您可能感兴趣的文章:

PHP实现的防止跨站和xss攻击代码php技巧

Ubuntu上安装yaf扩展的方法php实例

thinkphp3.2.0 setInc方法 源码全面解析php实例

以上就是php实现的AES加密类定义与用法示例php技巧的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表