请问一下哪位仁兄,谁用过tdes加密的...

alisam_123 2009-04-13 04:10:13
弱弱地问一句,tdes對稱式加密函數TrippleDES,是不是跟PHP扩展mcrypt_encrypt加密一样的?
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
alisam_123 2009-04-14
  • 打赏
  • 举报
回复
试了,就是不一样哦...
PHP版
class CookieCrypt
{
var $key;
function CookieCrypt($key)
{
$this->key = $key;
}
function encrypt($input)
{
$size = mcrypt_get_block_size('des','ecb');
$input = $this->pkcs5_pad($input, $size);
$key = $this->key;
$td = mcrypt_module_open('des', '', 'ecb', '');
$iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
@mcrypt_generic_init($td, $key, $iv);
$data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$data = base64_encode($data);
return $data;
}
function decrypt($encrypted)
{
$encrypted = base64_decode($encrypted);
$key =$this->key;
$td = mcrypt_module_open('des','','ecb','');
//使用MCRYPT_DES算法,cbc模式
$iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
@mcrypt_generic_init($td, $key, $iv);
//初始处理
$decrypted = mdecrypt_generic($td, $encrypted);
//解密
mcrypt_generic_deinit($td);
//结束
mcrypt_module_close($td);
$y=$this->pkcs5_unpad($decrypted);
return $y;
}
function pkcs5_pad ($text, $blocksize)
{
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text)
{
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text))
{
return false;
}
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad)
{
return false;
}
return substr($text, 0, -1 * $pad);
}
}
$key = "123456781234567812345678";
$input = sha1("test");
$crypt = new CookieCrypt($key);
echo "Encode:".$crypt->encrypt($input)."<br/>";
echo "Encode:".strlen($crypt->encrypt($input))."<br/>";
echo "Decode:".$crypt->decrypt($crypt->encrypt($input));
?>
asp com版

regsvr32 元件所在路徑\Security.dll
2. 應用壓碼函式 Fcb_Mac( data, key)
MAC產生 ASP應用範例:
<%@ Language=JavaScript%>
<%
var obj=Server.CreateObject ("Security.UseSecurity.1");
data="test";
key="123456781234567812345678";
mac=obj.Fcb_Mac(data,key);
Response.Write(mac);
%>

正确测试结果

Base64(TDES(KEY,SHA-1(押碼資料)))
押碼資料:test
押碼Key:123456781234567812345678
經SHA-1押碼後為:A94A8FE5CCB19BA61C4C0873D391E987982FBBD300000000
經TDES押碼後為:FDDADB7E2DD648E3AF3816FB5EF0696C7C887F1ED1BCADBA
經Base64押碼後為:/drbfi3WSOOvOBb7XvBpbHyIfx7RvK26

大家帮我分析一下
alisam_123 2009-04-14
  • 打赏
  • 举报
回复
高手哪里去了.郁闷............
Zijian_Zhang 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 alisam_123 的回复:]
顶一下,不能沉...这问题搞得头晕脑转
[/Quote]

正常啊,呵呵!

楼主自己试一下,看看是不是相同不就可以了,哈哈.
phpboy 2009-04-13
  • 打赏
  • 举报
回复
没用过,不过帮顶!


LZ别急哈
热学沸腾56 2009-04-13
  • 打赏
  • 举报
回复
不懂..帮顶!!
alisam_123 2009-04-13
  • 打赏
  • 举报
回复
没有回答,哎....
alisam_123 2009-04-13
  • 打赏
  • 举报
回复
顶一下,不能沉...这问题搞得头晕脑转

20,333

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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