Metropoli BBS
VIEWER: vigenc.bas MODE: TEXT (ASCII)
INPUT "Do you want to encrypt (enter E) or decrypt (enter D)?"; which$
IF UCASE$(which$) = "E" THEN
   INPUT "Enter text"; plain$
   INPUT "Enter password"; password$
   coded$ = ""
   plain$ = UCASE$(plain$)
   password$ = UCASE$(password$)
   j = 1   ' new variable explained below
   FOR i = 1 TO LEN(plain$)
      newcode = ASC(MID$(plain$, i, 1)) + ASC(MID$(password$, j, 1)) - ASC("A")
      j = j + 1
         IF j > LEN(password$) THEN j = 1
            IF newcode > ASC("Z") THEN
               newcode = ASC("A") + (newcode - ASC("Z") - 1)
             END IF
             coded$ = coded$ + CHR$(newcode)
      NEXT
    PRINT coded$
END IF

IF UCASE$(which$) = "D" THEN
INPUT "Enter encrypted text"; coded$
INPUT "Enter password"; password$
coded$ = UCASE$(coded$)
password$ = UCASE$(password$)
plain$ = ""
j = 1
   FOR i = 1 TO LEN(coded$)
      plaincode = ASC(MID$(coded$, i, 1)) - (ASC(MID$(password$, j, 1)) - ASC("A"))
      j = j + 1
        IF j > LEN(password$) THEN j = 1
        IF plaincode < ASC("A") THEN
         plaincode = plaincode + 26
      END IF
   plain$ = plain$ + CHR$(plaincode)
   NEXT
   PRINT plain$
   END IF
END

[ RETURN TO DIRECTORY ]