PHP写的加密函数,支持私人密钥(详细介绍)_php技巧
May 17, 2016 am 09:02 AM
php
fungsi penyulitan
在开发PHP系统时,会员部分往往是一个必不可少的模块,而密码的处理又是不得不面对的问题,PHP 的 Mcrypt 加密库又需要额外设置,很多人都是直接使用md5()函数加密,这个方法的确安全,但是因为md5是不可逆加密,无法还原密码,因此也有一些不便之处,本文介绍加密函数支持私钥,用起来还是不错的.
代码如下:
PHP:
复制代码 代码如下:
-
-
-
// 说明: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
"
;
-
?>
-
每一次加密后的结果是不一样的,大大加强了密码的安全性.
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel Panas
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Berapa lama masa yang diperlukan untuk mengalahkan fiksyen berpecah?
3 minggu yang lalu
By DDD
R.E.P.O. Simpan Fail Lokasi: Di manakah & bagaimana untuk melindunginya?
3 minggu yang lalu
By DDD

Alat panas Tag

Artikel Panas
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Berapa lama masa yang diperlukan untuk mengalahkan fiksyen berpecah?
3 minggu yang lalu
By DDD
R.E.P.O. Simpan Fail Lokasi: Di manakah & bagaimana untuk melindunginya?
3 minggu yang lalu
By DDD

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP
