Maison >développement back-end >tutoriel php >PHP implémente le code de base et le code de test de cryptage et de décryptage AES

PHP implémente le code de base et le code de test de cryptage et de décryptage AES

不言
不言original
2018-08-14 14:06:171936parcourir

Cet article vous apporte le code de base et le code de test pour implémenter le cryptage et le décryptage AES en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Code de base :

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

Code de test :

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

Recommandations associées :

Cryptage et décryptage Cryptage et décryptage PHP Blowfish algorithme

Fonctions de cryptage et décryptage et exemples de cryptage et décryptage DES en PHP, exemples de cryptage et décryptage phpdes

php Exemples de cryptage et de décryptage rsa, exemple de cryptage et de décryptage rsa

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn