Privacy For Videos (aes256 encryption for videos) This utility can be use to display encrypted videos in combination with the VLC media player: usage: pfv.exe number : password1 : password2 : inputfile >outputfile password is a 43 character string with the characters A-Z a-z 0-9 / + Any other character is ignored. If less characters are provided, the string is padded with +. Therefore you should not use a password which ends with a +, because, for example, the two passwords "abc" and "abc++++" are both extended to "abc++++++++++++++++++++++++++++++++++++++++" and therefore "abc++++" is not more secure than "abc". The binary 256 bit key for aes is generated by base64 decoding the given 43 character password. To encrypt a video file "video1.mp4" with the password "hello world" (note: the space in the password is ignored, so "helloworld" or "hello_world" would be the same), use: pfv.exe :: hello world : video1.mp4 >video1.pfv The file size of the output file is increased to a multiple of 1 MByte. Note: if you repeat this command, you will get a different binary, but it still is a valid encrypted version of the video. To decrypt this encrypted video use: pfv.exe : hello world :: video1.pfv >video2.mp4 video1.mp4 and video2.mp4 are then identical files. To directly play an encrypted video use: pfv.exe : hello world :: video1.pfv | C:\path_to_vlc\vlc.exe - To re-encrypt a video with a different password without first decrypting it (no decrypted version of the video is temporarily stored on the disk), use: pfv.exe : old password : new password : inputfile > outputfile If you have more encrypted videos, for example: video1.pfv (encrypted with password "pass1") video2.pfv (encrypted with password "pass1") video3.pfv (encrypted with password "pass2") video4.pfv (encrypted with password "pass1") you can copy them all into one big file (but there is a 4 GByte limit for FAT filesystems): copy /b video1.pfv + video2.pfv + video3.pfv + video4.pfv all.pfv To play vidoe1 use: pfv.exe : pass1 :: all.pfv | C:\path_to_vlc\vlc.exe - To play vidoe2 use: pfv.exe 2 : pass1 :: all.pfv | C:\path_to_vlc\vlc.exe - To play vidoe3 use: pfv.exe : pass2 :: all.pfv | C:\path_to_vlc\vlc.exe - To play vidoe4 use: pfv.exe 3 : pass1 :: all.pfv | C:\path_to_vlc\vlc.exe - The number specifies which of the videos encrypted with the given password should be decrypted. If the number is 0 or omitted, 1 is used (video4 is the 3. video encrypted with pass1 in the input file). If you use ">outfile" instead of "|vlc -" you can extract the video from the multi-video file (encrypted or unencrypted depending on a given second password). The program is pretty slow, but a standard PC should be be able to decode at least Full HD videos. If you put this batch on your desktop, @echo off set /p p=Password: set p=&cls&pfv :%p%::%1|C:\path_to_vlc\vlc.exe - you can use the mouse to drop a encrypted video on it. It then asks for the password and plays the video. If you use multi video files, use this batch: @echo off set /p p=Number:Password: set p=&cls&pfv %p%::%1|D:\Programme\vlc\vlc.exe - In this case you must enter the number and password separated by a ":", for example: 3:mypassword -------------------------------------------------------------------- The demo file demo.pfv contains 3 videos and a zip file: video 1: a cat video password "only cats no dogs" video 2: a qr code video password "hack me if you can" video 3: a picture slide show video password again "only cats no dogs" zip file: a zip file with some original pictures of the slide show password "who cares" to play video 1 use: pfv :only cats no dogs::demo.pfv| C:\path_to_vlc\vlc.exe - to play video 2 use: pfv :hack me if you can::demo.pfv| C:\path_to_vlc\vlc.exe - to play video 3 use: pfv 2:only cats no dogs::demo.pfv| C:\path_to_vlc\vlc.exe - to extract the zip file use: pfv :who cares::demo.pfv > cats.zip If you decode the qr code video, you will get a zip file with some pictures. The password for the pictures is: "The quick brown fox jump" -------------------------------------------------------------------- Here the binary of pfv.exe (just execute the batch below to generate the binary): @echo off certutil -f -decode %~f0 pfv.exe>nul goto :eof -----BEGIN CERTIFICATE----- TVpgAQEAAAAEAAAA//8AAGABAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAoAAAAA4fug4AtAnNIbgBTM0hTmljZSB0byBtZWV0IHNvbWVi b2R5IHdobyBpcyBzdGlsbCB1c2luZyBET1MsDQpidXQgaGlzIHByb2dyYW0gcmVx dWlyZXMgV2luMzIuDQokAFBFAABMAQEAUHmlNgAAAAAAAAAA4AAPAQsBBQwADAAA AAAAAAAAAAD6EAAAABAAAAAwAQAAAEAAABAAAAACAAAEAAAAAAAAAAQAAAAAAAAA ADABAAACAAAAAAAAAwAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAAAAAAAAAAAA JBAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAkAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnRleHQAAAAAEQEAABAAAAAMAAAAAgAA AAAAAAAAAAAAAAAAIAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCEAAAlBAAAKIQAACyEAAA wBAAANQQAADgEAAA7BAAAAAAAABaEAAAAAAAAAAAAABMEAAAABAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAS0VSTkVMMzIuZGxsAACCEAAAlBAAAKIQAACyEAAAwBAAANQQ AADgEAAA7BAAAMAQAAAAAAAAAABHZXRDb21tYW5kTGluZUEAAABFeGl0UHJvY2Vz cwAAAEdldFN0ZEhhbmRsZQAAAABDcmVhdGVGaWxlQQAAAFNldEZpbGVQb2ludGVy RXgAAAAAUmVhZEZpbGUAAAAAV3JpdGVGaWxlAAAAQ2xvc2VIYW5kbGUA/xUAEEAA icYx0qwIwHUKvuoTQADpzAMAADwidQL30gnSdec8IHXjMcAx0qwIwHUKvuoTQADp qwMAADw6dA8sMHLpPAl35WvSCgHC696D6gGD0gGJFZwaQAC/tBpAAOguBgAAv6Qb QADoJAYAAPYFgBpAAAN1Cr6EFEAA6WUDAACsPCB0+06J94n1rDwidPuqCMB19moA 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 -----END CERTIFICATE-----