Heim >Backend-Entwicklung >PHP-Problem >So verwenden Sie Aes für die Verschlüsselung in PHP
php kann die Benutzer-ID überprüfen, um festzustellen, ob der Benutzer angemeldet ist. Diese ID kann jedoch geändert werden. Nach der Änderung können alle geänderten Benutzerinformationen abgerufen werden, sodass wir den Wert verschlüsseln müssen. Folgen wir dem Editor, um zu sehen, wie man Aes zur Verschlüsselung verwendet.
Im Projekt, insbesondere auf der PC-Seite, geben wir nach der Benutzeranmeldung eine Identifikation an das Frontend zurück, um festzustellen, ob der Benutzer angemeldet ist. Der größte Teil dieser Identifikation ist die Benutzer-ID.
Aber hier gibt es einen großen Nachteil: Wenn ich diesen Wert ändere, kann ich alle Informationen des geänderten Benutzers abrufen.
Dann lasst uns heute AES für die Verschlüsselung verwenden
<?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; } }
Dies ist eine AES-Toolklasse. Beachten Sie, dass dieser Wert von uns selbst geändert werden muss und 16 Bit beträgt, damit unser Benutzer beim Anmelden die ID an das Frontend zurückgibt.制 控 Zunächst wird der Controller vorgestellt
und dann instanziiert
Nach erfolgreicher Anmeldung geben wir diesen Wert an das Frontend zurück
Dieser U_ID
Es ist der verschlüsselte Wert
u_id
就是加密后的值
然后我们在comment
Empfohlenes Lernen:
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Aes für die Verschlüsselung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!