Heim >Backend-Entwicklung >PHP-Tutorial >Eine kurze Diskussion über die Verwendung von Aeses für die Verschlüsselung in PHP (mit Code)

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

青灯夜游
青灯夜游nach vorne
2021-03-01 17:45:403561Durchsuche

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

}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen