Wednesday, May 7, 2008

Decrypt / Encrypt string in ROT-13

' Converts a string from ROT13
Const Alpha_Upper = "abcdefghijklm" ' First 13 letters

Const Alpha_Lower = "nopqrstuvwxyz" ' Second 13 letters
Dim aAlpha, aStringDim iDim sROT13, sFullROT13


aAlpha = Split(Alpha, ",")
sString = Wscript.Arguments(0)


For i = 1 to Len(sString)
  iPos = InStr(Alpha_Upper, LCase(Mid(sString, i, 1)))
  If iPos > 0 Then ' Found in upper so return corresponding lower character
    sROT13 = Mid(Alpha_Lower, iPos, 1)
  Else
    iPos = InStr(Alpha_Lower, LCase(Mid(sString, i, 1)))
    If iPos > 0 Then
      sROT13 = Mid(Alpha_Upper, iPos, 1)
    Else
      sROT13 = Mid(sString, i, 1) ' Not an alphabetic character, so just return the supplied character
    End If
  End If

  sFullRot13 = sFullRot13 & sROT13
Next

Wscript.Echo sFullROT13

No comments: