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]