DES 加密解密

作者: hyperbolaa | 来源:发表于2018-05-16 12:00 被阅读1次
class Des
{
    private $key;

    public function __construct()
    {
        $this->key =  'xxxxxxxx';
    }

    public function encrypt($data)
    {
        // Remove the base64 encoding from our key
        $encryption_key = base64_decode($this->key);
        // Generate an initialization vector
        $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
        // Encrypt the data using AES 256 encryption in CBC mode using our encryption key and initialization vector.
        $encrypted = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv);
        // The $iv is just as important as the key for decrypting, so save it with our encrypted data using a unique separator (::)
        return base64_encode($encrypted . '::' . $iv);
    }

    //
    public function decrypt($encrypted)
    {
        // Remove the base64 encoding from our key
        $encryption_key = base64_decode($this->key);
        // To decrypt, split the encrypted data from our IV - our unique separator used was "::"
        list($encrypted_data, $iv) = explode('::', base64_decode($encrypted), 2);
        return openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv);
    }
}

相关文章

网友评论

    本文标题:DES 加密解密

    本文链接:https://www.haomeiwen.com/subject/xilpdftx.html