最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php之Aes加密案例講解

 更新時間:2021年08月04日 09:17:58   作者:咔咔-  
這篇文章主要介紹了php之Aes加密案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

在項(xiàng)目中,尤其是pc端的時候,我們在用戶登錄后會給前端返回一個標(biāo)識,來判斷用戶是否登錄,這個標(biāo)識大多數(shù)都是用戶的id

image.png                                       ​

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

那么今天就使用aes進(jìn)行加密處理一下

<?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位

image.png                                           ​

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

首先在控制器引入

image.png                                           ​

然后進(jìn)行實(shí)例化

image.png                                           ​

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

image.png                                           ​

這個u_id就是加密后的值

image.png                                           ​

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

image.png                                           ​

到此這篇關(guān)于php之Aes加密案例講解的文章就介紹到這了,更多相關(guān)php之Aes加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • php示例詳解Constructor Prototype Pattern 原型模式

    php示例詳解Constructor Prototype Pattern 原型模式

    原型模式是一種創(chuàng)建者模式,其特點(diǎn)在于通過“復(fù)制”一個已經(jīng)存在的實(shí)例來返回新的實(shí)例,而不是新建實(shí)例。
    2015-10-10
  • thinkphp中字符截取函數(shù)msubstr()用法分析

    thinkphp中字符截取函數(shù)msubstr()用法分析

    這篇文章主要介紹了thinkphp中字符截取函數(shù)msubstr()用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了thinkPHP中字符截取函數(shù)msubstr()的功能、定義使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2016-01-01
  • PHP如何初始化PDO及原始SQL語句操作

    PHP如何初始化PDO及原始SQL語句操作

    PDO 已經(jīng)是 PHP 中操作數(shù)據(jù)庫事實(shí)上的標(biāo)準(zhǔn)。包括現(xiàn)在的框架和各種類庫,都是以 PDO 作為數(shù)據(jù)庫的連接方式?;旧现挥形覀冏约涸趯懞唵蔚臏y試代碼或者小的功能時會使用 mysqli 來操作數(shù)據(jù)庫。注意,普通的 mysql 擴(kuò)展已經(jīng)過時了哦!
    2021-06-06
  • PHP文件大小格式化函數(shù)合集

    PHP文件大小格式化函數(shù)合集

    php中有一個系統(tǒng)自帶的計(jì)算文件大小的函數(shù),就是filesize(),但是這個函數(shù)是以字節(jié)為單位的,在一些情況下,我們需要很直觀的了解一個文件大小,就不僅僅需要字節(jié)B這個單位了,還需要KB,MB,GB,甚至更大TB,PB,所以我們需要自己寫一些函數(shù)來格式化filesize()的輸出結(jié)果
    2014-03-03
  • PHP實(shí)現(xiàn)微信退款功能

    PHP實(shí)現(xiàn)微信退款功能

    這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)微信退款功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • php解決約瑟夫環(huán)示例

    php解決約瑟夫環(huán)示例

    這篇文章主要介紹了php解決約瑟夫環(huán)示例,需要的朋友可以參考下
    2014-04-04
  • Laravel使用RabbitMQ的方法示例

    Laravel使用RabbitMQ的方法示例

    這篇文章主要介紹了Laravel使用RabbitMQ的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • destoon二次開發(fā)入門示例

    destoon二次開發(fā)入門示例

    這篇文章主要介紹了destoon二次開發(fā),需要的朋友可以參考下
    2014-06-06
  • 深入理解PHP JSON數(shù)組與對象

    深入理解PHP JSON數(shù)組與對象

    很多朋友很郁悶JSON數(shù)據(jù)中有時格式不定,一會兒是數(shù)組,一會兒是對象,怎么回事呢?下面小編給大家?guī)砹藀hp json數(shù)組與對象的相關(guān)知識,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • PHP curl模擬登錄帶驗(yàn)證碼的網(wǎng)站

    PHP curl模擬登錄帶驗(yàn)證碼的網(wǎng)站

    最近接了個項(xiàng)目,其中有需求是要登錄帶驗(yàn)證碼的網(wǎng)站,獲取數(shù)據(jù),但是我們不可能人為的一直去記錄數(shù)據(jù),想通過自動采集的方式進(jìn)行,下面小編給大家?guī)淼南嚓P(guān)代碼,對php curl 模擬登錄帶驗(yàn)證碼的網(wǎng)站感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11

最新評論

松阳县| 临夏县| 图木舒克市| 望都县| 花垣县| 大关县| 威宁| 湖州市| 新干县| 江达县| 屯门区| 韶关市| 通许县| 玉山县| 孟州市| 湘乡市| 鹰潭市| 南雄市| 电白县| 迁西县| 绥德县| 墨竹工卡县| 肥乡县| 台中市| 晴隆县| 巩义市| 明光市| 阿尔山市| 鄂托克旗| 河间市| 师宗县| 茶陵县| 海伦市| 镇巴县| 宣恩县| 辽中县| 中西区| 尼勒克县| 文昌市| 册亨县| 甘肃省|