When developing a PHP system, the membership part is often an essential module, and password processing is a problem that has to be faced. PHP's Mcrypt encryption library requires additional settings. Many people use the md5() function directly. Encryption, this method is indeed safe, but because md5 is irreversible encryption, the password cannot be restored, so there are some inconveniences. This article introduces the encryption function to support private keys, which is good to use.
The code is as follows:
PHP:
Copy code The code is as follows:
// 说明:PHP 写的加密函数,支持私人密钥
// 整理:http://www.jb51.net
function
keyED(
$txt
,$encrypt_key
)
{
$encrypt_key
= md5
(
$encrypt_key
)
;
$ctr
=0
;
$tmp
= ""
;
for
(
$i
=0
;$i
(
$txt
)
;$i
++)
{
if
(
$ctr
==strlen
(
$encrypt_key
)
)
$ctr
=0
;
$tmp
.= substr
(
$txt
,$i
,1
)
^ substr
(
$encrypt_key
,$ctr
,1
)
;
$ctr
++;
}
return
$tmp
;
}
function
encrypt(
$txt
,$key
)
{
srand
(
(
double)
microtime
(
)
*1000000
)
;
$encrypt_key
= md5
(
rand
(
0
,32000
)
)
;
$ctr
=0
;
$tmp
= ""
;
for
(
$i
=0
;$i
(
$txt
)
;$i
++)
{
if
(
$ctr
==strlen
(
$encrypt_key
)
)
$ctr
=0
;
$tmp
.= substr
(
$encrypt_key
,$ctr
,1
)
. (
substr
(
$txt
,$i
,1
)
^ substr
(
$encrypt_key
,$ctr
,1
)
)
;
$ctr
++;
}
return
keyED(
$tmp
,$key
)
;
}
function
decrypt(
$txt
,$key
)
{
$txt
= keyED(
$txt
,$key
)
;
$tmp
= ""
;
for
(
$i
=0
;$i
(
$txt
)
;$i
++)
{
$md5
= substr
(
$txt
,$i
,1
)
;
$i
++;
$tmp
.= (
substr
(
$txt
,$i
,1
)
^ $md5
)
;
}
return
$tmp
;
}
$key
= "www.yitu.org"
;
$string
= "我是加密字符"
;
// encrypt $string, and store it in $enc_text
$enc_text
= encrypt(
$string
,$key
)
;
// decrypt the encrypted text $enc_text, and store it in $dec_text
$dec_text
= decrypt(
$enc_text
,$key
)
;
print
"加密的 text : $enc_text
"
;
print
"解密的 text : $dec_text
"
;
?>
每一次加密后的结果是不一样的,大大加强了密码的安全性.
http://www.bkjia.com/PHPjc/327520.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327520.htmlTechArticle在开发PHP系统时,会员部分往往是一个必不可少的模块,而密码的处理又是不得不面对的问题,PHP 的 Mcrypt 加密库又需要额外设置,很多人都是直...