分类
php

php 常用加密

对称加密:RSA
非对称加密:AES,BES
单向加密:md5,haval, sha


AES加密演示
备注:php7以上废弃了相关的方法,需要到以下连接中下载扩展。
https://windows.php.net/downloads/pecl/releases/

扩展文件放置到ext文件夹下

再修改php.ini

之后重启服务器。


以下贴出PHP代码

<?php

class AES {
    protected $key;
    protected $iv;

    public function __construct($key)
    {
        $this->key = hash('sha256', $key, true);
        $this->iv = hash('md5', $key, true);
    }

    // 加密
    public function encode($string)
    {
        // 打开加密模式
        // 选择MCRYPT_RIJNDAEL_128 aes加密
        $td = @mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
        // 初始化加密
        @mcrypt_generic_init($td, $this->key, $this->iv);
        // 执行加密
        $encodeString = @mcrypt_generic($td, $string);
        // 关闭加密
        @mcrypt_generic_deinit($td);
        @mcrypt_module_close($td);

        return $encodeString;
    }

    // 解密
    public function decode($encodeString)
    {
        $td = @mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
        @mcrypt_generic_init($td, $this->key, $this->iv);
        $decodeString = @mdecrypt_generic($td, $encodeString);
        @mcrypt_generic_deinit($td);
        @mcrypt_module_close($td);
        // 移除换行符空格
        return trim($decodeString);
    }
}


$AESServer = new AES('keyData');
$string = '加密的内容';
var_dump($string);
echo "<hr>";
$encodeString = $AESServer->encode($string);
var_dump($encodeString);
echo "<hr>";
$decodeString = $AESServer->decode($encodeString);
var_dump($decodeString);

打印的信息如下

发表评论

邮箱地址不会被公开。 必填项已用*标注