des加密用php实现.txt

来自「这是一用PHP实现的DES加密解密程序,如果是加密要求较高的地方可以用3DES,」· 文本 代码 · 共 62 行

TXT
62
字号
80分求DES加密解密算法实现的PHP源代码
 悬赏分:80 - 解决时间:2008-8-21 18:02
运行以下PHP文件 
<?php 
function idtag_des_decode($key,$encrypted) 
{ 
$encrypted = base64_decode($encrypted); 

$td = mcrypt_module_open(MCRYPT_DES,'',MCRYPT_MODE_CBC,''); //使用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, $key); //初始处理 

$decrypted = mdecrypt_generic($td, $encrypted); //解密 

mcrypt_generic_deinit($td); //结束 
mcrypt_module_close($td); 

$y=pkcs5_unpad($decrypted); 
return $y; 
} 

function idtag_des_encode($key,$text) 
{ 

$y=pkcs5_pad($text); 

$td = mcrypt_module_open(MCRYPT_DES,'',MCRYPT_MODE_CBC,''); //使用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, $key); //初始处理 

$encrypted = mcrypt_generic($td, $y); //解密 

mcrypt_generic_deinit($td); //结束 
mcrypt_module_close($td); 

return base64_encode($encrypted); 
} 

function pkcs5_pad($text,$block=8) 
{ 
$pad = $block - (strlen($text) % $block); 
return $text . str_repeat(chr($pad), $pad); 
} 


function pkcs5_unpad($text) 
{ 
$pad = ord($text{strlen($text)-1}); 
if ($pad > strlen($text)) return $text; 
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return $text; 
return substr($text, 0, -1 * $pad); 
} 

$key = '12345678'; 
$str = 'str'; 
echo "encode:".idtag_des_encode($key,$str); 

?> 
打印出的结果是:encode:fwSjSc4VKyQ= 
现在求一个不依赖于mcrypt扩展库的DES算法实现PHP源代码。如果答案满意,追加30分

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?