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.
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.
Mais 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 = '1234567891112121'; } /** * 加密 * @param String input 加密的字符串 * @param String key 解密的key * @return HexString */ public function encrypt($input = '') { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = $this->pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $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.
🎜>Puis instancions
Une fois que l'utilisateur s'est connecté avec succès, nous chiffrons cette valeur et la renvoyons au front-end Ceciest la valeur cryptée
Les 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é : Tutoriel 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!