首页 > 开发 > PHP > 正文

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

2024-05-04 22:42:17
字体:
来源:转载
供稿:网友

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

运行结果:

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

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相关内容感兴趣的读者可查看本站专题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结》

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

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