aes加密OpenSSL方式
mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。
PHP手册在7.1迁移页面给出了替代方案,就是用OpenSSL取代MCrypt。
<?php namespace expand; /** * [AesSecurity aes加密,支持PHP7.1] */ class Aessecurity { /** * [encrypt aes加密] * @param [type] $input [要加密的数据] * @param [type] $key [加密key] * @return [type] [加密后的数据] */ public static function encrypt($input, $key) { $data = openssl_encrypt($input, 'AES-128-ECB', $key, OPENSSL_RAW_DATA); $data = base64_encode($data); return $data; } /** * [decrypt aes解密] * @param [type] $sStr [要解密的数据] * @param [type] $sKey [加密key] * @return [type] [解密后的数据] */ public static function decrypt($sStr, $sKey) { $decrypted = openssl_decrypt(base64_decode($sStr), 'AES-128-ECB', $sKey, OPENSSL_RAW_DATA); return $decrypted; } }
使用方法:
$Aessecurity = new \expand\Aessecurity(); $input = '中华人民共和国'; $key = '赵瑛_wozhaoying@163.com_www_ihwrm_com'; $key = md5(base64_encode(sha1($key,true))); $aaa = $Aessecurity->encrypt($input,$key); $bbb = $Aessecurity->decrypt($aaa,$key); echo $key;