Ben Sinclair wrote:
> That would work for me, but I have to deal with many files that I have already
> encrypted and no longer know the correct sizes of. My search and replace for
> the padding characters doesn't work because the files sometimes contain those
> padding characters.
>
> --
> Ben Sinclair
> [EMAIL PROTECTED]
Well, if your original files ended in NUL bytes you are out of luck, but
I don't think that is likely. You should be able to simply decrypt and
strip trailing NUL bytes to get the original files back. See example below.
-- Joe
=====================================
<?PHP
print ("<HTML><BODY>\n");
$plaintext = "123456789";
echo "Plaintext = " . $plaintext . "<BR>";
echo "Plaintext length = " . strlen($plaintext) . "<BR>";
/*
* open the desired module
*/
$td = mcrypt_module_open (MCRYPT_TRIPLEDES, "", MCRYPT_MODE_CBC, "");
/*
* Just for illustration, a real iv should be random of course
*/
$iv = "99999999";
/*
* and I hope a better password is actually used
*/
$key = "mysecret";
/*
* initialize the module structures
*/
$ret = mcrypt_generic_init($td, $key, $iv);
/*
* finally encrypt it
*/
$ciphertext = mcrypt_generic($td, $plaintext);
echo "Ciphertext length = " . strlen($ciphertext) . "<BR>";
/*
* get ready for decryption
*/
$ret = mcrypt_generic_init($td, $key, $iv);
/*
* now decrypt
*/
$newplaintext = mdecrypt_generic($td, $ciphertext);
$ptr = strlen($newplaintext);
echo "New plaintext length = " . $ptr . "<BR>";
while (substr($newplaintext, $ptr - 1, 1) == chr(0))
{
$ptr--;
}
$origplaintext = substr($newplaintext, 0, $ptr);
echo "Origplaintext = " . $origplaintext . "<BR>";
echo "Origplaintext length = " . strlen($origplaintext) . "<BR>";
print ("</BODY></HTML>\n");
?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]