利用php實現cookie加密的方法程式碼範例

來源:互聯網
上載者:User
這篇文章主要介紹了php實現cookie加密的方法,涉及php操作cookie的加密、解密及設定等技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文執行個體講述了php實現cookie加密的方法。分享給大家供大家參考。具體實現方法如下:

代碼如下:

<?phpclass Cookie{    /**     * 解密已經加密了的cookie     *      * @param string $encryptedText     * @return string     */    private static function _decrypt($encryptedText)    {        $key = Config::get('secret_key');        $cryptText = base64_decode($encryptedText);        $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);        $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);        $decryptText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $cryptText, MCRYPT_MODE_ECB, $iv);        return trim($decryptText);    }    /**     * 加密cookie     *     * @param string $plainText     * @return string     */    private static function _encrypt($plainText)    {        $key = Config::get('secret_key');        $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);        $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);        $encryptText = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $plainText, MCRYPT_MODE_ECB, $iv);        return trim(base64_encode($encryptText));    }    /**     * 刪除cookie     *      * @param array $args     * @return boolean     */    public static function del($args)    {        $name = $args['name'];        $domain = isset($args['domain']) ? $args['domain'] : null;        return isset($_COOKIE[$name]) ? setcookie($name, '', time() - 86400, '/', $domain) : true;    }    /**     * 得到指定cookie的值     *      * @param string $name     */    public static function get($name)    {        return isset($_COOKIE[$name]) ? self::_decrypt($_COOKIE[$name]) : null;    }    /**     * 設定cookie     *     * @param array $args     * @return boolean     */    public static function set($args)    {        $name = $args['name'];        $value= self::_encrypt($args['value']);        $expire = isset($args['expire']) ? $args['expire'] : null;        $path = isset($args['path']) ? $args['path'] : '/';        $domain = isset($args['domain']) ? $args['domain'] : null;        $secure = isset($args['secure']) ? $args['secure'] : 0;        return setcookie($name, $value, $expire, $path, $domain, $secure);    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.