Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie PHP zum Verschlüsseln und Entschlüsseln von Cookies

So verwenden Sie PHP zum Verschlüsseln und Entschlüsseln von Cookies

墨辰丷
墨辰丷Original
2018-06-12 17:25:362213Durchsuche

In diesem Artikel wird hauptsächlich die Methode zur Implementierung der Cookie-Verschlüsselung in PHP vorgestellt, die die Verschlüsselung, Entschlüsselung und das Setzen von Cookies in PHP umfasst. Es hat einen gewissen Referenzwert.

Dieser Artikel erklärt die Beispiele, wie man die Cookie-Verschlüsselung in PHP implementiert. Die spezifische Implementierungsmethode lautet wie folgt:

Der Code lautet wie folgt:

<?php
class Cookie
{
    /**
     * 解密已经加密了的cookie
     * 
     * @param string $encryptedText
     * @return string
     */
    private static function _decrypt($encryptedText)
    {
        $key = Config::get(&#39;secret_key&#39;);
        $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(&#39;secret_key&#39;);
        $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[&#39;name&#39;];
        $domain = isset($args[&#39;domain&#39;]) ? $args[&#39;domain&#39;] : null;
        return isset($_COOKIE[$name]) ? setcookie($name, &#39;&#39;, time() - 86400, &#39;/&#39;, $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[&#39;name&#39;];
        $value= self::_encrypt($args[&#39;value&#39;]);
        $expire = isset($args[&#39;expire&#39;]) ? $args[&#39;expire&#39;] : null;
        $path = isset($args[&#39;path&#39;]) ? $args[&#39;path&#39;] : &#39;/&#39;;
        $domain = isset($args[&#39;domain&#39;]) ? $args[&#39;domain&#39;] : null;
        $secure = isset($args[&#39;secure&#39;]) ? $args[&#39;secure&#39;] : 0;
        return setcookie($name, $value, $expire, $path, $domain, $secure);
    }
}

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass dies so sein wird hilfreich für das Lernen aller.

Verwandte Empfehlungen:

PHP implementiert die Batch-Upload-Funktion für bestimmte Suffixdateien

PHP implementiert die Erkennung von End-Tags in HTML-Tags und die Vervollständigung Funktion

php-Beispiel analysiert das Konzept von Klassenkonstanten in PHP

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP zum Verschlüsseln und Entschlüsseln von Cookies. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn