解析 3DES PKCS7 急在线等

lenovor61i 2009-12-15 02:16:32
谁知道怎么解析 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加密的字符串
...全文
119 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ITpeipei 2012-05-31
  • 打赏
  • 举报
回复
郁闷啊,大侠你现在解出来了吗?
lenovor61i 2009-12-15
  • 打赏
  • 举报
回复
我突然觉得,好像无解呢,,呵呵

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧