i'm guessing that base64decode does something wrong with the encrypted data, but only on Android.
I'm using the same kind of script in WIndows and there it works perfectly without errors.
The result from decrypt says:Bad Decrypt or Wrong Final Block Length
I did some tests to rule some thing out:
delete first 16 characters, works on windows, bad decrypt on Android
leave first 16 characters where they are, then it's Wrong Final Block Length on both platforms
tried with and without URLencode when encrypting, no change. URLdecode messes it up while decrypting.
So no URLDecode while decrypting. And as this works on Windows IDE/Standalone, it should work on Android too, it's the same engine.
Decrypting itself with a encrypted pasword and salted, decrypting works OK on Android.
So i checked if it had to do with getting the data from DB, but that's not the case.
If you Encrypt it, Base64Encode it and then Base64Decode it and Decrypt it directly on Android it gives an error as result too. Works ok on Windows.
So after retreiving some data from DB
Code: Select all
on mouseUp
put "some encrypted and base64encoded data" into tMe
      #base64 decode
           put the base64Decode of tMe into tSixfour
           #decrypt it
           put fDecr(tSixfour) into tDecry
           #put it somewhere
           put tDecry into fld"i can read it can i"
           end mouseUp
           
           private function fDecr vText 
   set the itemDelimiter to comma
   decrypt vText using "aes256" with password "!@#$%^&*" and salt"*&^%$#@" at "256" bit
   --answer the result
   return it
end fDecr          
           Code: Select all
function fEncr vText 
   set the itemDelimiter to comma
   encrypt vText using "aes256" with password "!@#$%^&*" and salt"*&^%$#@" at "256" bit
   delete char 1 to 16 of it 
   return it
end fEncr
Hope anyone understand what i mean.
Seems like a bug to me for Android.
cheers.
Sphere

 
 