encryptions difficulty depends on how hard you want it to be to break

now this goes from being simple byte shifting (which is a common technique)
function encypt( strFile as string )
`// private declaration
local dwFileSize as dword
local strCompile as string
local dim arEncrypt(255) as byte :`// for byte encryption
local dim arEncode(8) as boolean :`// temp encoding
local dim arByteSwap(2) as boolean
if file exist(strFile)
dwFileSize = get file size(strFile)
open to read 1,strFile
open to write 2,strFile+".encrypt"
for index = 0 to dwFileSize
read byte byFile,arEncrypt(index)
for indexBit = 1 to 8
arEncode(indexBit) = val( mid$( str$( bin( arEncrypt(index) ) ),indexBit ) )
next indexBit
`// swap bits 2 & 4
arByteSwap(1) = arEncode(2) : arByteSwap(2) = arEncode(4)
arEncode(4) = arByteSwap(1) : arEncode(2) = arByteSwap(2)
`// compile new byte and export
strCompile = 0 :`// reset compile value
for indexBit = 1 to 8
strCompile = strCompile + str$( arEncode(indexBit) )
next indexBit
write byte 1,bin(strCompile)
next index
EReturn = 0
close file 2
close file 1
else
EReturn = 1
endif
endfunction EReturn
i mean the whole thing is pretty simple all it does is take each byte
converts to a binary %1010 1010 and then swaps the 2nd and 4th bits
so %1010 1010 becomes %1011 1000

there is a way to do this differently with real values (as i'm sure you'll figure out) and it only actually encrypts 2 out of 4 values
i mean you can add more swaps, or put in a mathematical encryption, this is just the quickest way i could show you... and if you want to decrypt then all you do is swap the files you read and write to.
if you put the file into a memblock you can actually read and write to the same file (^_^)
and ofcourse the function returns 1 if ther is a problem
Tsu'va Oni Ni Jyuuko Fiori Sei Tau!
One block follows the suit ... the whole suit of blocks is the path ... what have you found?