这篇文章将为大家详细讲解有关php使用Aes进行加密的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联专业为企业提供土默特左旗网站建设、土默特左旗做网站、土默特左旗网站设计、土默特左旗网站制作等企业网站建设、网页设计与制作、土默特左旗企业网站模板建站服务,十年土默特左旗做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
php可以查看用户的标识判断用户是否登录,但是此标识可以修改,修改之后就可以获取到修改的用户所有信息,因此我们需要对值进行加密。下面就跟着小编一起去看看如何使用Aes进行加密。
在项目中,尤其是pc端的时候,我们在用户登录后会给前端返回一个标识,来判断用户是否登录,这个标识大多数都是用户的id。
但是这里存在很大的弊端,那就是这个值可以修改,假如说把我这个值一修改,我就可以获取到修改的用户的所有信息,可怕吧!
那么今天就使用aes进行加密处理一下
key = '1234567891112121'; } /** * 加密 * @param String input 加密的字符串 * @param String key 解密的key * @return HexString */ public function encrypt($input = '') { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = $this->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, $this->key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; } /** * 填充方式 pkcs5 * @param String text 原始字符串 * @param String blocksize 加密长度 * @return String */ private function pkcs5_pad($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } /** * 解密 * @param String input 解密的字符串 * @param String key 解密的key * @return String */ public function decrypt($sStr) { $decrypted= mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$this->key,base64_decode($sStr), MCRYPT_MODE_ECB); $dec_s = strlen($decrypted); $padding = ord($decrypted[$dec_s-1]); $decrypted = substr($decrypted, 0, -$padding); return $decrypted; } }
这是一个aes的工具类。注意一下,这个值需要我们来自改,而且是16位,这样我们用户在登录时会把id返回给前端。
首先在控制器引入
然后进行实例化
用户在登录成功后我们把这个值给加密返回前端
这个u_id就是加密后的值
然后我们在comment文件设置这俩个方法,这俩个方法是对参数进行统一处理,那么我么那就在这里判断一下,凡是用到用户id的接口把用户id进行解密即可
关于“php使用Aes进行加密的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。