Maison  >  Article  >  développement back-end  >  Comment utiliser Aes pour le cryptage en php

Comment utiliser Aes pour le cryptage en php

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-04-06 10:52:094141parcourir

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;
    }
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer