21,886
社区成员
发帖
与我相关
我的任务
分享
class ThreeDes
{
public function mcrypt($str)
{
return base64_encode($this->fmt3DESEx($this->paddingPKCS7(sha1($str, true))));
}
public function fmt3DESEx($s)
{
$key = pack('H48',"9F8C243AEE347183B39DD81B20941E86BC11529B034C8842");
$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
$iv = pack('H16',"0102030405060708"); //like c# new byte[]{1,2,3,4,5,6,7,8}
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $s);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $encrypted_data;
}
public 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;
}
}
$des = new ThreeDes();
$str = '123456';
print $str=$des->mcrypt($str);
$str='xUL2ewBUn7mqNdrgbTzoZyfUjOMZw6r2';
class demcrypt{
public function Mydemcrypt($str){
$str = base64_decode($str);
$key = pack('H48',"9F8C243AEE347183B39DD81B20941E86BC11529B034C8842");
$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
$iv = pack('H16',"0102030405060708");
if (mcrypt_generic_init($td, $key, $iv) != -1)
{
$decrypted_data = mdecrypt_generic($td,$str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $decrypted_data;
}
}
}
$destr=new demcrypt();
print '<br>'.$destr->Mydemcrypt($str);