test.php测试文件
?phprequire_once( Des.php $des = new Des();$data[ a ] = a $data[ b ] = b $conf = [ appkey = AbcdefghijklmnopqrstuvwX , secretcode = Abcdefgh $encode = $des- encode($data, $conf);print_r($encode);echo br $decode = $des- decode($encode,$conf);print_r($decode);?
Des.php
?phprequire_once( TripleDES.php html' target='_blank'>class Des { public static function encode($data, $configKey) { $tripleDes = new TripleDES(); if (is_array($data)) { $data = json_encode($data); return $tripleDes- encode($data, $configKey[ appkey ], $configKey[ secretcode ]); public static function decode($data, $configKey) { $tripleDes = new TripleDES(); return $tripleDes- decode($data, $configKey[ appkey ], $configKey[ secretcode ]); public static function encodeArr($data, $configKey) { $data = json_encode($data); return self::encode($data, $configKey); public static function decodeArr($data, $configKey) { $res = self::decode($data, $configKey); return json_decode($res,true);}
TripleDES.php
?phpclass TripleDES { public static function genIvParameter() { return mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC), MCRYPT_RAND); private static function pkcs5Pad($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); // in php, strlen returns the bytes of $text return $text . str_repeat(chr($pad), $pad); private static function pkcs5Unpad($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); public static function encryptText($plain_text, $key, $iv) { $padded = TripleDES::pkcs5Pad($plain_text, mcrypt_get_block_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC)); return mcrypt_encrypt(MCRYPT_TRIPLEDES, $key, $padded, MCRYPT_MODE_CBC, $iv); public static function decryptText($cipher_text, $key, $iv) { if(function_exists( mcrypt_decrypt )){ $plain_text = mcrypt_decrypt(MCRYPT_TRIPLEDES, $key, $cipher_text, MCRYPT_MODE_CBC, $iv); }else{ $plain_text = openssl_decrypt($cipher_text, DES-EDE3-CBC ,$key, OPENSSL_NO_PADDING,$iv); return TripleDES::pkcs5Unpad($plain_text); public static function decode($cipher_text, $key, $iv) { $cipher_text = base64_decode($cipher_text); $cipher_text = TripleDES::decryptText($cipher_text, $key, $iv); return $cipher_text; public static function encode($cipher_text, $key, $iv) { $cipher_text = TripleDES::encryptText($cipher_text, $key, $iv); return base64_encode($cipher_text);}
【推荐课程:PHP视频教程】
以上就是PHP中DES加解密的代码示例的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答