Maison > développement back-end > Problème PHP > Comment utiliser Aes pour le cryptage en php

Comment utiliser Aes pour le cryptage en php

醉折花枝作酒筹
Libérer: 2023-03-09 10:20:01
avant
4145 Les gens l'ont consulté

php peut vérifier l'identifiant de l'utilisateur pour déterminer si l'utilisateur est connecté, mais cet identifiant peut être modifié. Après modification, toutes les informations utilisateur modifiées peuvent être obtenues, nous devons donc crypter la valeur. Suivons l'éditeur pour voir comment utiliser Aes pour le cryptage.

Comment utiliser Aes pour le cryptage en php

Dans le projet, notamment côté PC, une fois l'utilisateur connecté, nous renverrons une identification au front-end pour déterminer si l'utilisateur est connecté. de cette identification est l’identifiant de l’utilisateur.

Comment utiliser Aes pour le cryptage en phpMais il y a un gros inconvénient ici, c'est que cette valeur peut être modifiée. Si je modifie cette valeur, je peux obtenir toutes les informations de l'utilisateur modifié.

Utilisons donc aes pour le chiffrement aujourd'hui

<?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 = &#39;1234567891112121&#39;;
    }
    /**
     * 加密
     * @param String input 加密的字符串
     * @param String key   解密的key
     * @return HexString
     */
    public function encrypt($input = &#39;&#39;) {
        $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
        $input = $this->pkcs5_pad($input, $size);
        $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, &#39;&#39;, MCRYPT_MODE_ECB, &#39;&#39;);
        $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;
    }
}
Copier après la connexion

Il s'agit d'une classe d'outils aes. Notez que cette valeur doit être modifiée par nous-mêmes, et elle est de 16 bits, afin que notre utilisateur renvoie l'ID au front-end lors de la connexion.

Comment utiliser Aes pour le cryptage en php                                                                                                             🎜>Puis instancions

Une fois que l'utilisateur s'est connecté avec succès, nous chiffrons cette valeur et la renvoyons au front-end

Comment utiliser Aes pour le cryptage en php

Ceci

est la valeur cryptée Comment utiliser Aes pour le cryptage en php

                                     Comment utiliser Aes pour le cryptage en phpLes deux méthodes de configuration de fichier consistent à traiter les paramètres de manière unifiée, alors portons un jugement ici . Toute interface qui utilise l'ID utilisateur peut décrypter l'ID utilisateur

u_id

Apprentissage recommandé : Comment utiliser Aes pour le cryptage en phpTutoriel vidéo phpcomment

.

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:
php
source:csdn.net
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