for
(
$a
=
$j
=
$i
= 0;
$i
<
$string_length
;
$i
++) {
$a
= (
$a
+ 1) % 256;
$j
= (
$j
+
$box
[
$a
]) % 256;
$tmp
=
$box
[
$a
];
$box
[
$a
] =
$box
[
$j
];
$box
[
$j
] =
$tmp
;
$result
.=
chr
(ord(
$string
[
$i
]) ^ (
$box
[(
$box
[
$a
] +
$box
[
$j
]) % 256]));
}
if
(
$operation
== 'DECODE') {
if
((
substr
(
$result
, 0, 10) == 0 ||
substr
(
$result
, 0, 10) - time() > 0) &&
substr
(
$result
, 10, 16) ==
substr
(md5(
substr
(
$result
, 26) .
$keyb
), 0, 16)) {
return
substr
(
$result
, 26);
}
else
{
return
'';
}
}
else
{
return
$keyc
.
str_replace
('=', '',
base64_encode
(
$result
));
}
}
4.字符串转十六进制
代码如下:
/**
*
字符串转十六进制
* @param unknown_type $s
*/
function
str2hex(
$s
) {
$r
= "";
$hexes
=
array
("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
for
(
$i
=0;
$i
<
strlen
(
$s
);
$i
++)
$r
.= (
$hexes
[(ord(
$s
{
$i
}) >> 4)] .
$hexes
[(ord(
$s
{
$i
}) & 0xf)]);
return
$r
;
}
5.十六进制转字符串
代码如下:
/**
*
十六进制转字符串
* @param unknown_type $s