background image

PHP 安全:PHP 使用 DES 进行加密与解密的方法

本文章是对 PHP 使用 DES 进行加密与解密的方法进行了详细的分析介绍,需要的朋友参
考下
DES 是一种标准的数据加密算法,关于这个算法的详细介绍可以参考 wiki 和百度百科:
wiki

 

百科 百度百科

php 中有一个扩展可以支持 DES 的加密算法,是:extension=php_mcrypt.dll
在配置文件中将这个扩展打开还不能够在 windows 环境下使用
需要将 PHP

 

文件夹下的 libmcrypt.dll 

 

拷贝到系统的 system32 目录下,这是通过 phpinfo 可

以查看到 mcrypt 表示这个模块可以正常试用了。
下面是 PHP 中使用 DES 加密解密的一个例子:
代码如下:
 

//$input - stuff to decrypt
//$key - the secret key to use

function

 do_mencrypt(

$input

$key

)

{

$input

 = 

str_replace

(""n", "", 

$input

);

$input

 = 

str_replace

(""t", "", 

$input

);

$input

 = 

str_replace

(""r", "", 

$input

);

$key

 = 

substr

(md5(

$key

), 0, 24);

$td

 = mcrypt_module_open('tripledes', '', 'ecb', '');

$iv

 = mcrypt_create_iv(mcrypt_enc_get_iv_size(

$td

), MCRYPT_RAND);

mcrypt_generic_init(

$td

$key

$iv

);

$encrypted_data

 = mcrypt_generic(

$td

$input

);

mcrypt_generic_deinit(

$td

);

mcrypt_module_close(

$td

);

return

 trim(

chop

(

base64_encode

(

$encrypted_data

)));

}
 

//$input - stuff to decrypt
//$key - the secret key to use

 

function

 do_mdecrypt(

$input

$key

)

{

$input

 = 

str_replace

(""n", "", 

$input

);

$input

 = 

str_replace

(""t", "", 

$input

);

$input

 = 

str_replace

(""r", "", 

$input

);

$input

 = trim(

chop

(

base64_decode

(

$input

)));