首页 > 语言 > PHP > 正文

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

2024-05-05 00:05:14
字体:
来源:转载
供稿:网友

本文实例讲述了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.vevb.com";$key = "123456";echo "原始字符串:".$str."<br/>";$pwdstr = Security::encrypt($str,$key);echo "加密后:".$pwdstr."<br/>";$destr = Security::decrypt($pwdstr,$key);echo "解密结果:".$destr;?>

运行结果:

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

希望本文所述对大家PHP程序设计有所帮助。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选