Maison > développement back-end > tutoriel php > Comment utiliser PHP pour crypter et décrypter les cookies

Comment utiliser PHP pour crypter et décrypter les cookies

墨辰丷
Libérer: 2023-03-31 20:28:02
original
2305 Les gens l'ont consulté

Cet article présente principalement la méthode de mise en œuvre du cryptage des cookies en PHP, impliquant le cryptage, le décryptage et le paramétrage des cookies en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

Cet article explique. les exemples Comment implémenter le cryptage des cookies en PHP. La méthode de mise en œuvre spécifique est la suivante :

Le code est le suivant :

<?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);
    }
}
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l’apprentissage de chacun.

Recommandations associées :

PHP implémente la fonction de téléchargement par lots pour les fichiers de suffixe spécifiés

php implémente la détection des balises de fin dans les balises html et la complétion function

exemple php analyse le concept de constantes de classe en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal