Maison >développement back-end >tutoriel php >Une brève discussion sur l'utilisation d'Aeses pour le cryptage en PHP (avec code)
[Apprentissage recommandé : "Tutoriel vidéo PHP"]
Dans le projet, notamment côté PC, nous retournerons un identifiant à le front-end pour déterminer si l'utilisateur est connecté. La plupart de cet identifiant est l'identifiant de l'utilisateur
Cependant, il y a un gros inconvénient ici, c'est-à-dire cette valeur. peut être modifié. , si je modifie cette valeur, je peux obtenir toutes les informations de l'utilisateur modifié, comme c'est effrayant !
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
De cette façon, notre utilisateur renverra l'identifiant au front-end lors de la connexion
Tout d'abord, dans le contrôle L'implémenteur est introduit
puis instancié
Après le L'utilisateur se connecte avec succès, nous chiffrons cette valeur et la renvoyons au front-end
Ce u_id est la valeur cryptée
Ensuite, nous définissons ces deux méthodes dans le fichier de commentaires, ces deux méthodes consistent à traiter uniformément les paramètres, portons donc un jugement ici. Toute interface qui utilise l'ID utilisateur peut décrypter l'ID utilisateur
<.>
Plus de programmation Pour des connaissances connexes, veuillez visiter :Vidéo de programmation ! !
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!