php在线解密mcrypt,PHP 基于 Mcrypt 的加密解密简单类

最近的一个项目项目中需要对 Cookie 加密,所以使用到了 Mcrypt 的方法进行加密解密的工作,于是我就整理成一个简单的类,以后直接简单调用类实现即可。

Mcrypt 介绍

Mcrypt 是 PHP 的一个扩展,完成了常用加密算法的封装,mcrypt 库提供了对多种块算法的支持, 包括:DES,TripleDES,Blowfish (默认), 3-WAY,SAFER-SK64,SAFER-SK128,TWOFISH,TEA,RC2 以及 GOST,并且支持 CBC,OFB,CFB 和 ECB 密码模式。 甚至它还支持诸如 RC6 和 IDEA 这两种“非免费”的算法。

可以使用 mcrypt_list_modes() 函数列出当前环境支持的模式,以及使用 mcrypt_list_algorithms() 列出当前环境支持的算法。

简单的 Mcrypt 的加密解密类

下面创建一个简单的类,默认使用 RIJNDAEL_256 算法和 ECB 模式,当然也可以传递其他的算法和模式进去。

Class WPJAM_Mcrypt{

private $key;

private $algorithm= MCRYPT_RIJNDAEL_256;

private $algorithm_directory= '';

private $mode = MCRYPT_MODE_ECB;

private $mode_directory= '';

public function __construct($key, $args=array()){

$this->key= $key;

$this->algorithm= isset($args['$algorithm'])?$args['$algorithm']:$this->algorithm;

$this->algorithm_directory= isset($args['$algorithm_directory'])?$args['$algorithm_directory']:$this->algorithm_directory;

$this->mode= isset($args['$mode'])?$args['$mode']:$this->mode;

$this->mode_directory= isset($args['$mode_directory'])?$args['$mode_directory']:$this->mode_directory;

}

public function encrypt($text){

$module= mcrypt_module_open($this->algorithm, $this->algorithm_directory, $this->mode, $this->mode_directory);

$iv_size= mcrypt_enc_get_iv_size($module);

$iv= mcrypt_create_iv($iv_size, MCRYPT_RAND);

mcrypt_generic_init($module, $this->key, $iv);

$encrypted_text= mcrypt_generic($module, $text);

mcrypt_generic_deinit($module);

mcrypt_module_close($module);

return trim(base64_encode($encrypted_text));

}

public function decrypt($encrypted_text){

$encrypted_text= base64_decode($encrypted_text);

$module= mcrypt_module_open($this->algorithm, $this->algorithm_directory, $this->mode, $this->mode_directory);

$iv_size= mcrypt_enc_get_iv_size($module);

$iv= mcrypt_create_iv($iv_size, MCRYPT_RAND);

mcrypt_generic_init($module, $this->key, $iv);

$decrypted_text= mdecrypt_generic($module, $encrypted_text);

return trim($decrypted_text);

}

}

使用方法非常简单:

//首先创建类

$wpjam_mcrypt= new WPJAM_Mcrypt('t12d3uBDDVy9eC836r76VKlBvtEFzizz');

$plain_text= '要加密的文字';

$encrypted_text= $wpjam_mcrypt->encrypt($plgin_text); // 加密

$decrypted_text= $wpjam_mcrypt->decrypted($encrypted_text); // 解密

©我爱水煮鱼,本站推荐使用的主机:

本站长期承接 WordPress 优化和建站业务,请联系微信:「chenduopapa」。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值