version 6.50 -1 238 268 3 CryptoDesktop.dll Bitwise.dll BinaryFile.dll 3 CryptoDevice.dll Bitwise.dll BinaryFile.dll 3 crypto:Crypto bit:Bitwise bin:BinaryFile 0 Sub designer end sub @EndOfDesignText@ 'Crypto is a Crypto object, Bit is a Bitwise object, Bin is a Binaryfile object Sub Globals Dim string(0) As Byte, secret(0) As Byte, s3(0) As Byte,string2(0) As Byte s4="" x=0 length=0 'used lots of variables so no chance of cross over of data for demo PassPhrase = "password" 'no recomended - best to save password as an encrypted file to compare with what is typed in txtString="begin- a text file to encrypt -end" 'just a file to encrypt than decrypt End Sub Sub App_Start FileClose(c2) 'i always close my files 1st to be sure FileClose(c1) Bit.New1 Crypto.New1 encryptx 'encrypt and save routine decryptx 're-read then decrypt routine AppClose End Sub Sub Encryptx string() = Bit.StringToBytes(txtString,0,StrLength(txtString)) 'convert the string to bytes secret() = Crypto.Encrypt(PassPhrase, string()) 'crypto routine x=ArrayLen(secret()) 'get length of array to save FileOpen(c1,"test.txt",cRandom) bin.New1(c1,True) bin.WriteInt16(x) 'save length of array bin.WriteBytes(secret()) 'save encrypted data as bytes FileClose(c1) Msgbox("done encrypt") End Sub Sub decryptx FileOpen(c2,"test.txt",cRandom) bin.New1(c2,True) x2=bin.ReadInt16 'read in array size Dim s3(x2) As byte 'reset dim to proper size - believe it or not, this makes a difference length = bin.ReadBytes(s3(), x2) 'read in string for x2 bytes - length variable not used FileClose(c2) string2()=crypto.Decrypt(PassPhrase,s3()) 'crypto routine txtString=bit.BytesToString(string(),0,ArrayLen(string2())) 'turn back to string Msgbox("decrypted file "&txtstring) End Sub