PHP 敏感数据加密方法

本文详细介绍了在PHP中对敏感数据进行加密的各种方法,包括使用内置的openssl_encrypt函数,探讨了加密策略和安全性,为PHP开发者提供数据保护的实用指南。
/**
 * 对称加密类
 *
 * 依赖:openssl扩展;
 *
 * 加解密要指定对应的密钥$key,加密结果是经过base64编码的。
 *
 * 例如:
 * use \leyangjun\Lib\Crypt;
 * $key = 'XXXXXXXXXXXXXXXX'; //密钥
 * $data = '明文';
 * $cipherText = Crypt::encrypt($data, $key); //加密
 * $text = Crypt::decrypt($cipherText, $key); //解密
 */
class Crypt
{
    protected static $method = 'AES-256-CBC';

    public static function encrypt($data, $key)
    {
        $ivLen = openssl_cipher_iv_length(static::$method);
        $iv = openssl_random_pseudo_bytes($ivLen);
        $text = openssl_encrypt($data, static::$method, $key, OPENSSL_RAW_DATA, $iv);
        return self::safetyBase64Encode($iv . $text);
    }

    public static function decrypt($text, $key)
    {
        $cipherText = self::safetyBase64Decode($text);
        $ivLen = openssl_cipher_iv_length(static::$method);
        $iv = substr($cipherText, 0, $ivLen);
        if (strlen($iv) != $ivLen) {
            $iv = substr(str_pad($iv, $ivLen, '0'), 0, $ivLen);
        }
        
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值