php有封装好的加密算法,DES是其中之一,3DES表示三重DES加密算法
代码示例:
预定义了key,iv=key,(两者通过base64进行了编码)<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
public function encrypt($value)
{
$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, ''); //生成3DES的加密器,mcrypt_module_open,Opens the module of the algorithm and the mode to be used
$iv = base64_decode($this->iv); //对iv解码
$value = $this->PaddingPKCS7($value); //将字符串填充到x位
$key = base64_decode($this->key); //将key进行解码
mcrypt_generic_init($td, $key, $iv); //加密,初始化
$ret = base64_encode(mcrypt_generic($td, $value)); //执行加密,
mcrypt_generic_deinit($td); //加密结束
mcrypt_module_close($td); //关闭加密器
return $ret;
}
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;
}
补充说明:
//base64_encode 本函数将字符串以 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网络上顺利传输。在 BASE64 编码后的字符串只包含英文字母大小写、阿拉伯数字、加号与反斜线,共 64 个基本字符,不包含其它特殊的字符,因而才取名 BASE64。编码后的字符串比原来的字符串长度再加 1/3 左右