php 3des 加密类
来源:互联网 发布:上海译文出版社淘宝店 编辑:程序博客网 时间:2024/05/21 20:21
下面是一个我经常用到的3des加密类:
class STD3Des { private $key = ""; private $iv = ""; /** * 构造,传递二个已经进行base64_encode的KEY与IV * * @param string $key * @param string $iv */ function __construct ($key, $iv) { if (empty($key) || empty($iv)) { echo 'key and iv is not valid'; exit(); } $this->key = $key; $this->iv = $iv; } /** *加密 * @param <type> $value * @return <type> */ public function encrypt ($value) { $td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, ''); $iv = base64_decode($this->iv); $value = $this->PaddingPKCS7($value); $key = base64_decode($this->key); mcrypt_generic_init($td, $key, $iv); $ret = base64_encode(mcrypt_generic($td, $value)); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $ret; } /** *解密 * @param <type> $value * @return <type> */ public function decrypt ($value) { $td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, ''); $iv = base64_decode($this->iv); $key = base64_decode($this->key); mcrypt_generic_init($td, $key, $iv); $ret = trim(mdecrypt_generic($td, base64_decode($value))); $ret = $this->UnPaddingPKCS7($ret); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $ret; } /** *pkcs7补足算法 * */ private function PaddingPKCS7 ($data) { $block_size = mcrypt_get_block_size('tripledes', 'cbc'); $padding_char = $block_size - (strlen($data) % $block_size); $data .= str_repeat(chr($padding_char), $padding_char); return $data; } private function UnPaddingPKCS7($text) { $pad = ord($text{strlen($text) - 1}); if ($pad > strlen($text)) { return false; } if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) { return false; } return substr($text, 0, - 1 * $pad); } }
1 0
- php 3des 加密类
- php加密:3DES
- PHP进行3des加密
- 3des加密类
- C# DES和3DES加密类
- php 3DES|DES 加密解密(通用)
- 连载二:php 3des加密
- php中3DES加密技术
- PHP DES加密解密
- 自定义PHP DES加密
- PHP-des加密
- 3DES加密工具类
- php 3des加密 获取十六进制加密字符
- php加密之DES加密,可逆加密
- DES加密之3DES
- DES/3DES加密,解密
- java php DES 加密解密
- php des 加密解密实例
- java解析json
- 新手入游戏行业
- ios设置状态栏隐藏和样式
- UIView任意角设置 cornerRedius
- 解决:安装SQl 2008为SQL Server代理服务提供的凭据无效
- php 3des 加密类
- jdbc
- window平台下 Eclipse Ndk开发中的Method 'NewStringUTF' could not be resolved问题
- Fragment和Activity交互
- POJ 3262 Protecting the Flowers
- sed & awk & grep 专题( 鸟哥 )
- 《Struts2技术内幕》 新书部分篇章连载 gong 10 章
- 实验报告1-1(第一次c++编程)
- 构造器(二)----指定构造器、便利构造器