<?php
class enstr {
public function enstrhex($str,$key) {
/* 开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/* 初始化加密程序*/
mcrypt_generic_init($td, $keystr, $iv);
/* 加密, $encrypted 保存的是已经加密后的数据*/
$encrypted = mcrypt_generic($td, $str);
/* 检测解密句柄,并关闭模块*/
mcrypt_module_close($td);
/* 转化为16进制*/
$hexdata = bin2hex($encrypted);
//返回
return $hexdata;
}
public function destrhex($str,$key) {
/*开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/*
初始化加密模块,用以解密
*/
mcrypt_generic_init($td, $keystr, $iv);
/* 解密*/
$encrypted = pack( "H*", $str);
$decrypted = mdecrypt_generic($td, $encrypted);
/* 检测解密句柄,并关闭模块*/
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* 返回原始字符串*/
return $decrypted;
}
}
$enstr = new enstr();
$str = 'test';
$entemp = $enstr->enstrhex($str,'key');
$detemp = $enstr->destrhex($entemp,'key');
echo '字符:'.$str.'<br>加密:'.$entemp.'<br>解密:'.$detemp;
?>
class enstr {
public function enstrhex($str,$key) {
/* 开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/* 初始化加密程序*/
mcrypt_generic_init($td, $keystr, $iv);
/* 加密, $encrypted 保存的是已经加密后的数据*/
$encrypted = mcrypt_generic($td, $str);
/* 检测解密句柄,并关闭模块*/
mcrypt_module_close($td);
/* 转化为16进制*/
$hexdata = bin2hex($encrypted);
//返回
return $hexdata;
}
public function destrhex($str,$key) {
/*开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');
/* 建立IV,并检测key 的长度*/
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* 生成key */
$keystr = substr(md5($key), 0, $ks);
/*
初始化加密模块,用以解密
*/
mcrypt_generic_init($td, $keystr, $iv);
/* 解密*/
$encrypted = pack( "H*", $str);
$decrypted = mdecrypt_generic($td, $encrypted);
/* 检测解密句柄,并关闭模块*/
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* 返回原始字符串*/
return $decrypted;
}
}
$enstr = new enstr();
$str = 'test';
$entemp = $enstr->enstrhex($str,'key');
$detemp = $enstr->destrhex($entemp,'key');
echo '字符:'.$str.'<br>加密:'.$entemp.'<br>解密:'.$detemp;
?>