中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中如何實現Aes加密

發布時間:2021-08-04 14:02:21 來源:億速云 閱讀:140 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關php中如何實現Aes加密,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在項目中,尤其是pc端的時候,我們在用戶登錄后會給前端返回一個標識,來判斷用戶是否登錄,這個標識大多數都是用戶的id

php中如何實現Aes加密                                       

但是這里存在很大的弊端,那就是這個值可以修改,假如說把我這個值一修改,我就可以獲取到修改的用戶的所有信息,可怕吧!

那么今天就使用aes進行加密處理一下

<?php
namespace app\api\controller;
 
/**
 * aes 加密 解密類庫
 * Class Aes
 * @package app\common\lib
 */
class Aes {
 
    private $key = null;
 
    /**
     *
     * @param $key 		密鑰
     * @return String
     */
    public function __construct() {
        // 需要小伙伴在配置文件app.php中定義aeskey
        $this->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位

php中如何實現Aes加密                                           

這樣我們用戶在登錄時會把id返回給前端

首先在控制器引入

php中如何實現Aes加密                                           

然后進行實例化

php中如何實現Aes加密                                           

用戶在登錄成功后我們把這個值給加密返回前端

php中如何實現Aes加密                                           

這個u_id就是加密后的值

php中如何實現Aes加密                                           

然后我們在comment文件設置這倆個方法,這倆個方法是對參數進行統一處理,那么我么那就在這里判斷一下,凡是用到用戶id的接口把用戶id進行解密即可

php中如何實現Aes加密               

上述就是小編為大家分享的php中如何實現Aes加密了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節
推薦閱讀:
  1. IOS AES加密
  2. aes加密

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

将乐县| 泰顺县| 尼勒克县| 英山县| 衡水市| 西乌珠穆沁旗| 沂水县| 东源县| 白河县| 双柏县| 湘潭县| 泗水县| 阿荣旗| 金阳县| 漠河县| 波密县| 扶沟县| 错那县| 常山县| 炉霍县| 台中县| 来安县| 咸宁市| 泾川县| 湾仔区| 承德县| 库伦旗| 介休市| 沂源县| 鄄城县| 湘潭县| 宁化县| 周口市| 磐安县| 昔阳县| 万荣县| 福海县| 手机| 普兰县| 云梦县| 铜陵市|