<?php
/*===========================================================
= 版權協議
= GPL (The GNU GENERAL PUBLIC LICENSE Version June )
=
= 文件名稱 cls sys_crypt php
= 摘 要 php加密解密處理類
= 版 本
= 參 考 Discuz論壇的passport相關函數
=
= Script Written By PHPWMS項目組
= 最後更新 xinge
= 最後日期
============================================================*/
class
SysCrypt {
private
$crypt_key
;
// 構造函數
public
function
__construct(
$crypt_key
) {
$this
> crypt_key =
$crypt_key
;
}
public
function
php_encrypt(
$txt
) {
srand((double)microtime() * );
$encrypt_key
= md (rand( ));
$ctr
= ;
$tmp
=
;
for
(
$i
= ;
$i
<
strlen
(
$txt
);
$i
++) {
$ctr
=
$ctr
==
strlen
(
$encrypt_key
) ? :
$ctr
;
$tmp
=
$encrypt_key
[
$ctr
] (
$txt
[
$i
]^
$encrypt_key
[
$ctr
++]);
}
return
base _encode
(self::__key(
$tmp
$this
> crypt_key));
}
public
function
php_decrypt(
$txt
) {
$txt
= self::__key(
base _decode
(
$txt
)
$this
> crypt_key);
$tmp
=
;
for
(
$i
= ;
$i
<
strlen
(
$txt
);
$i
++) {
$md
=
$txt
[
$i
];
$tmp
=
$txt
[++
$i
] ^
$md
;
}
return
$tmp
;
}
private
function
__key(
$txt
$encrypt_key
) {
$encrypt_key
= md (
$encrypt_key
);
$ctr
= ;
$tmp
=
;
for
(
$i
= ;
$i
<
strlen
(
$txt
);
$i
++) {
$ctr
=
$ctr
==
strlen
(
$encrypt_key
) ? :
$ctr
;
$tmp
=
$txt
[
$i
] ^
$encrypt_key
[
$ctr
++];
}
return
$tmp
;
}
public
function
__destruct() {
$this
> crypt_key = null;
}
}
$sc
=
new
SysCrypt(
phpwms
);
$text
=
;
print(
$sc
> php_encrypt(
$text
));
print(
<br>
);
print(
$sc
> php_decrypt(
$sc
> php_encrypt(
$text
)));
?>
From:http://tw.wingwit.com/Article/program/PHP/201311/21324.html