openssl_encrypt代替mcrypt_encrypt函数进行3des加密

由于php 7.1以上的版本不再支持mcrypt模块,所以对敏感信息进行3DES加密时无法再使用mcrypt*相关函数。而是用openssl_encrypt函数代替

class 3des{
    public function encrypt($str,$key){
        $str = self::pkcs5_pad($str, 8);
        if (strlen($str) % 8) {
            $str = str_pad($str,strlen($str) + 8 - strlen($str) % 8, "\0");
        }
        $sign = openssl_encrypt ($str, 'DES-EDE3' ,$key,OPENSSL_RAW_DATA | OPENSSL_NO_PADDING ,'');
		return base64_encode($sign);
    }

    private static function pkcs5_pad($text, $blocksize) {
        $pad = $blocksize - (strlen($text) % $blocksize);
        return $text . str_repeat(chr($pad), $pad);
    }
}

openssl_encrypt ( $data , $method , $key [, $options = 0 [, $iv = "" ]] )
参数说明:
$data		string	需要加密的字符串
$method		string	加密方法(DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB)
$key		string	加密密钥
$options	int		0:自动填充,返回的数据经过base64编码;1:自动填充,返回数据未经bas
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值