hackalive Posted September 2, 2012 Share Posted September 2, 2012 Hi guys Have thhis code to encrypt files $passphrase = 'My secret'; /* Turn a human readable passphrase * into a reproducable iv/key pair */ $iv = substr(md5('iv'.$passphrase, true), 0, ; $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key); $fp = fopen('secret-file.enc', 'wb'); stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts); fwrite($fp, 'Secret secret secret data'); fclose($fp); However I want to be able to do it as guaranteed AES256, so I need the ley length etc to match the AES256 standard. I tried this <?php $passphrase = 'My secret'; /* Turn a human readable passphrase * into a reproducable iv/key pair */ $iv = substr(md5('iv'.$passphrase, true), 0, ; $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key); $fp = fopen('secret-file.enc', 'wb'); stream_filter_append($fp, 'mcrypt.RIJNDAEL_256', STREAM_FILTER_WRITE, $opts); fwrite($fp, 'Secret secret secret data'); fclose($fp); But it stays could not locate or open encryption filter. Quote Link to comment https://forums.phpfreaks.com/topic/267907-aes256/ Share on other sites More sharing options...
hackalive Posted September 2, 2012 Author Share Posted September 2, 2012 Okay I now have this working - however I assume I will need todo file_get_conetents to encypt the actual file contents rather than create new content that is encrypted? <?php $passphrase = 'My secret'; /* Turn a human readable passphrase * into a reproducable iv/key pair */ $iv = substr(md5('iv'.$passphrase, true), 0, ; $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key); $fp = fopen('secret-file.enc', 'wb'); stream_filter_append($fp, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts); fwrite($fp, 'Secret secret secret data'); fclose($fp); /* Turn a human readable passphrase * into a reproducable iv/key pair */ $iv = substr(md5('iv'.$passphrase, true), 0, ; $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key); $fp = fopen('secret-file.enc', 'rb'); stream_filter_append($fp, 'mdecrypt.rijndael-128', STREAM_FILTER_READ, $opts); $data = rtrim(stream_get_contents($fp)); fclose($fp); echo $data; ?> So if people could just help on how to do the keys properly - i will need to store them somehow - probably MySQL so they can be used to decrypt - is is best to do a phrase like the PHP.net demos or specific exact keys? Quote Link to comment https://forums.phpfreaks.com/topic/267907-aes256/#findComment-1374588 Share on other sites More sharing options...
hackalive Posted September 2, 2012 Author Share Posted September 2, 2012 If someone wouldn't mind checking this and how do I make it for all files not just plain text? <?php $passphrase = 'My secret'; /* Turn a human readable passphrase * into a reproducable iv/key pair */ $iv = substr(md5('iv'.$passphrase, true), 0, ; $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $key256 = '12345678901234561234567890123456'; $iv = '1234567890123456'; $opts = array('iv'=>$iv, 'key'=>$key); // $fp = fopen('secret-file2.enc', 'wb'); $myFile = 'secret-file.enc'; $fi = file_get_contents('secret-file.enc'); $fp = fopen($myFile, 'w+'); stream_filter_append($fp, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts); fwrite($fp, $fi); fclose($fp); Tell me if it is doing it correctly - it appears to be but appearances can be deceiving Cheers Quote Link to comment https://forums.phpfreaks.com/topic/267907-aes256/#findComment-1374592 Share on other sites More sharing options...
hackalive Posted September 2, 2012 Author Share Posted September 2, 2012 Okay - I think is all sorted except one thing. How to decrypt before/as you dopwnload doing Open/Savd As??? Need it to work on all browsers too. Quote Link to comment https://forums.phpfreaks.com/topic/267907-aes256/#findComment-1374595 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.