PHP システムを開発する場合、メンバーシップ部分は必須のモジュールであることが多く、PHP の Mcrypt 暗号化ライブラリでは、多くの人が直接 md5() 暗号化を使用する必要があります。確かに安全ですが、md5 は不可逆暗号化であるため、パスワードを復元できないため、いくつかの不便な点があります。この記事では、使用すると便利な秘密鍵をサポートする暗号化関数を紹介します。
コードは次のとおりです。 :
コードをコピーします
コードは次のとおりです:
// 说明: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
= 暗号化(
$string
,$key
<スパンクラス="br0">)
;
// 暗号化されたテキストを復号化する $enc_textを $dec_text
$dec_text
= 復号化(
$enc_text
,< span class="re0">$key
)
;
print
< span class="st0">"加密なテキスト : $enc_text
"
;
print
< span class="st0">"解密なテキスト: $dec_text
"
;
?>
一回加密後の結果は不一样的、大大加强了密码的安全性です
http://www.bkjia.com/PHPjc/327520.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327520.html技術記事 PHP システムの公開時、会議の一部は必須のモジュールですが、秘密暗号の処理はまた不面の問題であり、PHP の Mcrypt 加密库また必要な外部設定が必要であり、多くの人がいます...