强大的openssl_encrypt函数

强大的openssl_encrypt函数

21 Jan 2019

在最新的PHP7.1版本中,mcrypt_encrypt被弃用了,这意味着我们经常使用mcrypt函数实现的一系列经典加密解密算法即将淘汰,因此,有必要寻找可替代方案,openssl是一个不错的替代品。

class OpensslCrypt {

    /**
     * @var string
     */
    public static $method = 'aes-256-cfb';

    /**
     * @param $str
     * @param $key
     * @param $iv
     * @return bool|string
     */
    public static function encode($str, $key, $iv) {
        // OPENSSL_ZERO_PADDING 返回base64编码数据
        // OPENSSL_RAW_DATA 返回原始数据
        return base64_encode(openssl_encrypt($str, self::$method, $key, OPENSSL_ZERO_PADDING, $iv));
    }

    /**
     * @param $str
     * @param $key
     * @param $iv
     * @return string
     */
    public static function decode($str, $key, $iv) {
        return openssl_decrypt(base64_decode($str), self::$method, $key, OPENSSL_ZERO_PADDING, $iv);
    }

}

 

使用openssl_get_cipher_methods()函数可以查看当前支持的所有加密算法,全部一个函数搞定,特别方便