return
$ret
;
}
/**
*解密
* @param <type> $value
* @return <type>
*/
public
function
decrypt (
$value
)
{
$td
= mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
$iv
=
base64_decode
(
$this
->iv);
$key
=
base64_decode
(
$this
->key);
mcrypt_generic_init(
$td
,
$key
,
$iv
);
$ret
= trim(mdecrypt_generic(
$td
,
base64_decode
(
$value
)));
$ret
=
$this
->UnPaddingPKCS7(
$ret
);
mcrypt_generic_deinit(
$td
);
mcrypt_module_close(
$td
);
return
$ret
;
}
private
function
PaddingPKCS7 (
$data
)
{
$block_size
= mcrypt_get_block_size('tripledes', 'cbc');
$padding_char
=
$block_size
- (
strlen
(
$data
) %
$block_size
);
$data
.=
str_repeat
(
chr
(
$padding_char
),
$padding_char
);
return
$data
;
}
private
function
UnPaddingPKCS7 (
$text
)
{
$pad
= ord(
$text
{
strlen
(
$text
) - 1});
if
(
$pad
>
strlen
(
$text
)) {
return
false;
}
if
(
strspn
(
$text
,
chr
(
$pad
),
strlen
(
$text
) -
$pad
) !=
$pad
) {
return
false;
}
return
substr
(
$text
, 0, - 1 *
$pad
);
}
}
?>