Heim >Backend-Entwicklung >PHP-Problem >So verwenden Sie Aes für die Verschlüsselung in PHP

So verwenden Sie Aes für die Verschlüsselung in PHP

醉折花枝作酒筹
醉折花枝作酒筹nach vorne
2021-04-06 10:52:094143Durchsuche

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.

So verwenden Sie Aes für die Verschlüsselung in PHP

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.

So verwenden Sie Aes für die Verschlüsselung in PHPAber 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 = &#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, damit unser Benutzer beim Anmelden die ID an das Frontend zurückgibt.制 控 Zunächst wird der Controller vorgestellt

So verwenden Sie Aes für die Verschlüsselung in PHP

und dann instanziiert

Nach erfolgreicher Anmeldung geben wir diesen Wert an das Frontend zurück So verwenden Sie Aes für die Verschlüsselung in PHP

Dieser U_ID Es ist der verschlüsselte WertSo verwenden Sie Aes für die Verschlüsselung in PHP

So verwenden Sie Aes für die Verschlüsselung in PHP                         Nur Verwenden Sie die ID, um sie zu entschlüsseln

So verwenden Sie Aes für die Verschlüsselung in PHP

u_id就是加密后的值

So verwenden Sie Aes für die Verschlüsselung in PHP                          然后我们在commentEmpfohlenes Lernen:

php-Video-Tutorial

So verwenden Sie Aes für die Verschlüsselung in PHP

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!

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