谁知道怎么解析 pkcs7的数字签证啊
比如代码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);123456加密出来是xUL2ewBUn7mqNdrgbTzoZyfUjOMZw6r2
现在我要通过一个方法吧xUL2ewBUn7mqNdrgbTzoZyfUjOMZw6r2
给解成123456
我的方法:$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);这个方法少解析了一步,即pkcs7没解析
我解析到
paddingPKCS7方法的时候卡住了。哪位大虾知道怎么解析PKCS7加密的字符串