Created
November 21, 2011 22:33
-
-
Save jnbdz/1384192 to your computer and use it in GitHub Desktop.
Great way to encrypt and decrypt files with AES-256 with CBC mode. Made for Kohana framework (controller).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php defined('SYSPATH') or die('No direct script access.'); | |
class Controller_Filemanager extends Controller { | |
private $file = '/var/www/assets/img/big/IMG_2083.JPG'; | |
private $new_file = '/var/www/assets/encrypt/'; | |
private $key = 'your key'; | |
private $cipher = MCRYPT_RIJNDAEL_256; | |
private $mode = MCRYPT_MODE_CBC; | |
public function action_encrypt() | |
{ | |
//$finfo = finfo_open(FILEINFO_MIME_TYPE); | |
//$mime_type = finfo_file($finfo, $file); | |
//$read_file = readfile($file); | |
$file_content = file_get_contents($this->file); | |
$class_encrypt = new Encrypt($this->key, $this->mode, $this->cipher); | |
$encrypt_data = $class_encrypt->encode($file_content); | |
$handle = fopen($this->new_file.basename($this->file).'.enc', 'w') or die("Can't open file."); | |
fwrite($handle, $encrypt_data); | |
fclose($handle); | |
exit; | |
} | |
public function action_decrypt() | |
{ | |
$file_content = file_get_contents($this->new_file.basename($this->file).'.enc', 'r'); | |
$class_encrypt = new Encrypt($this->key, $this->mode, $this->cipher); | |
$decrypt_data = $class_encrypt->decode($file_content); | |
header('Content-Type: image/jpeg'); | |
print_r($decrypt_data); | |
exit; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment