欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP的des加密+ ECB方式+PKCS5 补齐

程序员文章站 2024-01-21 16:42:40
...
PHP的des加密+ ECB模式+PKCS5 补齐
/**
 * 
 * 加密函数
 * 算法:des
 * 加密模式:ecb
 * 补齐方法:PKCS5
 * 
 * @param unknown_type $input
 */
function encryptDesEcbPKCS5($input, $key) 
{ 
    $size = mcrypt_get_block_size('des', 'ecb'); 
    $input = pkcs5_pad($input, $size); 
    
    $td = mcrypt_module_open('des', '', 'ecb', ''); 
    //$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); 
    $iv = 0;
    mcrypt_generic_init($td, $key, $iv); 
    $data = mdecrypt_generic ($td, $input); 
    mcrypt_generic_deinit($td); 
    mcrypt_module_close($td); 
    //$data = base64_encode($data); 
    return $data; 
} 

/**
 * 解密函数
 * 算法:des
 * 加密模式:ecb
 * 补齐方法:PKCS5
 * @param unknown_type $input
 */
function decryptDesEcbPKCS5($input, $key) 
{ 
    $size = mcrypt_get_block_size('des', 'ecb'); 
   
    $td = mcrypt_module_open('des', '', 'ecb', ''); 
    $iv = 0;
    mcrypt_generic_init($td, $key, $iv); 
    $data = mcrypt_generic($td, $input); 
    mcrypt_generic_deinit($td); 
    mcrypt_module_close($td); 
    $data = pkcs5_unpad($data, $size); 
    //$data = base64_encode($data); 
    return $data; 
} 

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); 
} 

$str = 'test crypt';
$key = 'jack11';
$res = encryptDesEcbPKCS5($str, $key);
echo "$res\n";


$deRes = decryptDesEcbPKCS5($res, $key);

echo "\n$deRes\n";

?

PHP的DES加密的补齐比较特殊,而且不能指定

http://www.herongyang.com/Cryptography/DES-PHP-Block-Padding-in-mcrypt.html

PHP的des加密+ ECB方式+PKCS5 补齐

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • PHP的des加密+ ECB方式+PKCS5 补齐
  • 专题推荐