Need Help Decrypting File Enrypted with Mcrypt and PHP

Hi all,

I am trying to encrypt uploaded files and then decrypt them on demand after a user logs into the system. I have been able to encrypt the uploaded files using PHP and mcrypt. However, when I try to decrypt, it says that it is working, writes the file, but the file is not decrypted. I have researched everywhere trying to find an answer, and I’m sure I am doing something completely wrong. I have no experience encrypting files or with mcrypt.

Below is the code I am using. Basically, it uploads and encrypts and then provides a form with button so that the user can click and the file will be decrypted and displayed.

Thanks so much for any assistance with this.

[php]//Encrypt Code

$file = “{$_FILES[‘thefile’][‘tmp_name’]}”;
$initial_contents = file_get_contents($file);
if($initial_contents){
td = mcrypt_module_open(‘tripledes’, ‘’, ‘cbc’, ‘’);
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$key = “11111111111111111111111111111111”;
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $initial_contents);
$encrypted_dir = “cfiles/$username/$newdir/”;
$filename = “{$_FILES[‘thefile’][‘name’]}”;
$encrypted_file = @fopen("…/…/$encrypted_dir" . “$filename”,‘w’);
$ok_encrypt = @fwrite($encrypted_file,$encrypted_data);
if($ok_encrypt){
echo ‘The encrypted code was succesfully created ‘.
‘in encrypted_file.pdf!!!’.’
’;
}
else{
echo (“The write of this file failed!”);
}

@fclose($encrypted_file);

//Some info is passed via form to decrypt the file

print ‘’;
print “<input type=“hidden” name=“encrypted_dir” value=”…/…/$encrypted_dir" />";
print “<input type=“hidden” name=“key” value=”$key" />";
print “<input type=“hidden” name=“iv” value=”$iv" />";
print “<input type=“hidden” name=“encrypted_file” value=”$filename" />";
print “

File Attachment: <input type=“submit” value=“View File”> ”;
print “”;

//Decrypt Code

$key = $_POST[‘key’];
$iv = $_POST[‘iv’];
$td = mcrypt_module_open(‘tripledes’, ‘’, ‘cbc’, ‘’);
mcrypt_generic_init($td, $key, $iv);
$encrypted_dir = $_POST[‘encrypted_dir’];
$encrypted_file = $_POST[‘encrypted_file’];
$completelink = “$encrypted_dir$encrypted_file”;
$newfile = @fopen(’$completelink’,‘w’);
$p_t = mdecrypt_generic($td, $newfile);
$newfile = @fopen("$encrypted_dir" . “newfile.pdf”,‘w’);
$ok_decrypt = @fwrite($newfile,$p_t);
if($ok_decrypt){
echo ‘The decrypted code was succesfully created ‘.
‘in newfile.pdf!!!’.’
’;
}
else{
echo (“The write of this file failed!”);
}
@fclose($newfile);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
[/php]

Can you paste your Corrected Code.

Sponsor our Newsletter | Privacy Policy | Terms of Service