LPARAMETERS ; tcString, ; tlEncrypt LOCAL ; lnI, ; lcReturnString, ; lcString1, ; lcString2, ; lcTempString, ; lcCharacter, ; lnPos lcString1 = "" FOR lnI = 0 TO 255 lcString1 = lcString1 + CHR(lnI) NEXT lcTempString = lcString1 lcString2 = "" FOR lnI = 1 TO 32 IF MOD( lnI, 2 ) = 0 lcString2 = lcString2 + LEFT( lcTempString, 8 ) IF LEN(lcTempString) >= 9 lcTempString = SUBSTR( lcTempString, 9 ) ENDIF ELSE lcString2 = lcString2 + RIGHT( lcTempString, 8 ) lcTempString = LEFT( lcTempString, LEN( lcTempString ) - 8 ) ENDIF NEXT lcReturnString = "" FOR lnI = 1 TO LEN(tcString) lcCharacter = SUBSTR(tcString, lnI, 1) IF tlEncrypt lnPos = AT(lcCharacter, lcString1) + lnI - 1 IF lnPos > 256 lnPos = lnPos - 256 ENDIF lcReturnString = lcReturnString + SUBSTR(lcString2, lnPos, 1) ELSE lnPos = AT(lcCharacter, lcString2) - lnI + 1 IF lnPos < 1 lnPos = lnPos + 256 ENDIF lcReturnString = lcReturnString + SUBSTR(lcString1, lnPos, 1) ENDIF NEXT RETURN lcReturnString