Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

青灯夜游
Freigeben: 2023-04-09 18:58:01
nach vorne
3510 Leute haben es durchsucht

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

【Empfohlenes Lernen: „PHP-Video-Tutorial“】

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 in. Bei dieser Identifikation handelt es sich größtenteils um Benutzer-IDs

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

Aber es gibt hier einen großen Nachteil, das heißt, dieser Wert kann geändert werden, wenn ich diesen Wert ändere, kann ich alle Informationen des geänderten Benutzers abrufen. Wie beängstigend!

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 = &#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;
    }

}
Nach dem Login kopieren

Dies ist eine AES-Toolklasse. Beachten Sie, dass dieser Wert von uns selbst geändert werden muss und 16 Bit beträgt

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

, damit unser Benutzer die ID beim Anmelden an das Frontend zurückgibt

Fügen Sie ihn zuerst in den Controller ein

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

und dann instanziieren

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

Nachdem sich der Benutzer erfolgreich angemeldet hat, verschlüsseln wir diesen Wert und geben ihn an das Frontend zurück

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

Diese u_id ist der verschlüsselte Wert

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

Dann legen wir diese beiden Methoden fest Kommentardatei, diese beiden Methoden sind Parameter Für eine einheitliche Verarbeitung können wir hier ein Urteil fällen. Jede Schnittstelle, die die Benutzer-ID verwendet, kann die Benutzer-ID entschlüsseln

Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

Weitere Programmierkenntnisse finden Sie unter: Programmiervideo ! !

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!