<?<span>php
</span><span>
</span>
<span>
class
</span><span> Crypt3Des
{
</span><span>
public
</span> <span>
$key
</span> =
"01234567890123456789012345678912"
<span>;
</span><span>
public
</span> <span>
$iv
</span> =
"23456789"
; <span>
<span>
public
</span> <span>
function
</span> encrypt(<span>
$input
</span><span>)
{
</span><span>
$input
</span> = <span>
$this
</span>->padding( <span>
$input
</span><span> );
</span><span>
$key
</span> = <span>
base64_decode
</span>(<span>
$this
</span>-><span>key</span><span>);
</span><span>
$td
</span> = mcrypt_module_open( MCRYPT_3DES,
''
, MCRYPT_MODE_CBC,
''
<span>);
</span><span>
mcrypt_generic_init(<span>
$td
</span>, <span>
$key
</span>, <span>
$this
</span>-><span>iv);
</span><span>
<span>
$data
</span> = mcrypt_generic(<span>
$td
</span>, <span>
$input
</span><span>);
</span><span>
mcrypt_generic_deinit(<span>
$td
</span><span>);
</span><span>
mcrypt_module_close(<span>
$td
</span><span>);
</span><span>
$data
</span> = <span>
$this
</span>->removeBR(<span>
base64_encode
</span>(<span>
$data
</span><span>));
</span><span>
return
</span> <span>
$data
</span><span>;
}
</span><span>
<span>
public
</span> <span>
function
</span> decrypt(<span>
$encrypted
</span><span>)
{
</span><span>
$encrypted
</span> = <span>
base64_decode
</span>(<span>
$encrypted
</span><span>);
</span><span>
$key
</span> = <span>
base64_decode
</span>(<span>
$this
</span>-><span>key</span><span>);
</span><span>
$td
</span> = mcrypt_module_open( MCRYPT_3DES,
''
,MCRYPT_MODE_CBC,
''
<span>);
</span><span>
mcrypt_generic_init(<span>
$td
</span>, <span>
$key
</span>, <span>
$this
</span>-><span>iv);
</span><span>
<span>
$decrypted
</span> = mdecrypt_generic(<span>
$td
</span>, <span>
$encrypted
</span><span>);
</span><span>
mcrypt_generic_deinit(<span>
$td
</span><span>);
</span><span>
mcrypt_module_close(<span>
$td
</span><span>);
</span><span>
$decrypted
</span> = <span>
$this
</span>->removePadding(<span>
$decrypted
</span><span>);
</span><span>
return
</span> <span>
$decrypted
</span><span>;
}
</span><span>
<span>
public
</span> <span>
function
</span> padding( <span>
$str
</span><span> )
{
</span><span>
$len
</span> = 8 - <span>
strlen
</span>( <span>
$str
</span> ) % 8<span>;
</span><span>
for
</span> ( <span>
$i
</span> = 0; <span>
$i
</span> < <span>
$len
</span>; <span>
$i
</span>++<span> )
{
</span><span>
$str
</span> .= <span>
chr
</span>( 0<span> );
}
</span><span>
return
</span> <span>
$str
</span><span> ;
}
</span><span>
<span>
public
</span> <span>
function
</span> removePadding( <span>
$str
</span><span> )
{
</span><span>
$len
</span> = <span>
strlen
</span>( <span>
$str
</span><span> );
</span><span>
$newstr
</span> =
""
<span>;
</span><span>
$str
</span> = <span>
str_split
</span>(<span>
$str
</span><span>);
</span><span>
for
</span> (<span>
$i
</span> = 0; <span>
$i
</span> < <span>
$len
</span>; <span>
$i
</span>++<span> )
{
</span><span>
if
</span> (<span>
$str
</span>[<span>
$i
</span>] != <span>
chr
</span>( 0<span> ))
{
</span><span>
$newstr
</span> .= <span>
$str
</span>[<span>
$i
</span><span>];
}
}
</span><span>
return
</span> <span>
$newstr
</span><span>;
}
</span><span>
<span>
public
</span> <span>
function
</span> removeBR( <span>
$str
</span><span> )
{
</span><span>
$len
</span> = <span>
strlen
</span>( <span>
$str
</span><span> );
</span><span>
$newstr
</span> =
""
<span>;
</span><span>
$str
</span> = <span>
str_split
</span>(<span>
$str
</span><span>);
</span><span>
for
</span> (<span>
$i
</span> = 0; <span>
$i
</span> < <span>
$len
</span>; <span>
$i
</span>++<span> )
{
</span><span>
if
</span> (<span>
$str
</span>[<span>
$i
</span>] !=
'\n'
and
<span>
$str
</span>[<span>
$i
</span>] !=
'\r'
<span>)
{
</span><span>
$newstr
</span> .= <span>
$str
</span>[<span>
$i
</span><span>];
}
}
</span><span>
return
</span> <span>
$newstr
</span><span>;
}
}
</span><span>
<span>
$input
</span> =
"1qaz2ws"
<span>;
</span><span>
echo
</span>
"plainText:"
. <span>
$input
</span>.
"<br/>"
<span>;
</span><span>
$crypt
</span> = <span>
new
</span><span> Crypt3Des();
</span><span>
echo
</span>
"Encode:"
.<span>
$crypt
</span>->encrypt(<span>
$input
</span>).
"<br/>"
<span>;
</span><span>
echo
</span>
"Decode:"
.<span>
$crypt
</span>->decrypt(<span>
$crypt
</span>->encrypt(<span>
$input
</span><span>));
</span>?>