Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert AES-Verschlüsselungs- und -Entschlüsselungskerncode und Testcode

PHP implementiert AES-Verschlüsselungs- und -Entschlüsselungskerncode und Testcode

不言
不言Original
2018-08-14 14:06:171862Durchsuche

Dieser Artikel enthält den Kerncode und den Testcode für die Implementierung der AES-Verschlüsselung und -Entschlüsselung. Ich hoffe, dass er für Freunde hilfreich ist.

Kerncode:

<?php
 
namespace Aes;
 
class Aes
{
    /**
     * var string $method 加解密方法,可通过openssl_get_cipher_methods()获得
     */
    protected $method;
 
    /**
     * var string $secret_key 加解密的密钥
     */
    protected $secret_key;
 
    /**
     * var string $iv 加解密的向量,有些方法需要设置比如CBC
     */
    protected $iv;
 
    /**
     * var string $options (不知道怎么解释,目前设置为0没什么问题)
     */
    protected $options;
 
    /**
     * 构造函数
     *
     * @param string $key 密钥
     * @param string $method 加密方式
     * @param string $iv iv向量
     * @param mixed $options 还不是很清楚
     *
     */
    public function __construct($key, $method = &#39;AES-128-ECB&#39;, $iv = &#39;&#39;, $options = 0)
    {
        // key是必须要设置的
        $this->secret_key = isset($key) ? $key : &#39;morefun&#39;;
 
        $this->method = $method;
 
        $this->iv = $iv;
 
        $this->options = $options;
    }
 
    /**
     * 加密方法,对数据进行加密,返回加密后的数据
     *
     * @param string $data 要加密的数据
     *
     * @return string
     *
     */
    public function encrypt($data)
    {
        return openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv);
    }
 
    /**
     * 解密方法,对数据进行解密,返回解密后的数据
     *
     * @param string $data 要解密的数据
     *
     * @return string
     *
     */
    public function decrypt($data)
    {
        return openssl_decrypt($data, $this->method, $this->secret_key, $this->options, $this->iv);
    }
}

Testcode:

$aes = new OpenSSLAES(&#39;12345678&#39;);
 
$encrypted = $aes->encrypt(&#39;bbm是一家很有意思的公司&#39;);
 
echo &#39;要加密的字符串:bbm是一家很傻逼的公司<br>加密后的字符串:&#39;, $encrypted, &#39;<hr>&#39;;
 
$decrypted = $aes->decrypt($encrypted);
 
echo &#39;要解密的字符串:&#39;, $encrypted, &#39;<br>解密后的字符串:&#39;, $decrypted;

Verwandte Empfehlungen:

Verschlüsselung und Entschlüsselung PHP-Blowfish-Verschlüsselungs- und Entschlüsselungsalgorithmus

PHP-Verschlüsselungs- und -Entschlüsselungsfunktionen und DES-Verschlüsselungs- und -Entschlüsselungsbeispiele, PHPDES-Verschlüsselungs- und -Entschlüsselungsbeispiele

PHP-RSA-Verschlüsselungs- und -Entschlüsselungsbeispiele , RSA-Verschlüsselungs- und Entschlüsselungsbeispiele

Das obige ist der detaillierte Inhalt vonPHP implementiert AES-Verschlüsselungs- und -Entschlüsselungskerncode und Testcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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