These two small, simple, and effective functions easily encrypt/decrypt a text password. The functions take
two parameters: a number in the range of 1 to 10 used to alternatively shift up or down the ASCII character by
that amount, and the actual Password string.
The EncryptPassword function loops though each character of the DecryptedPassword, checks if its position
is odd or even, and shifts the character up or down according to the Number parameter. This makes the
encrypted string unreadable. The encrypted password is then scrambled once again using the XOR operator,
which makes it even more unreadable.
I chose a limit of Number to be ten so I don't have to check for invalid ASCII values. The DecryptPassword
Function reverses the encryption process by first applying the XOR operator and then shifting:
Function EncryptPassword(Number As _
Byte, DecryptedPassword As String)
Dim Password As String, Counter As Byte
Dim Temp As Integer
Counter = 1
Do Until Counter = _
Len(DecryptedPassword) + 1
Temp = Asc(Mid(DecryptedPassword, _
Counter, 1))
If Counter Mod 2 = 0 Then
'see if even
Temp = Temp - Number
Else
Temp = Temp + Number
End If
Temp = Temp Xor (10 - Number)
Password = Password & Chr$(Temp)
Counter = Counter + 1
Loop
EncryptPassword = Password
End Function
Function DecryptPassword(Number As _
Byte, EncryptedPassword As String)
Dim Password As String, Counter As Byte
Dim Temp As Integer
Counter = 1
Do Until Counter = _
Len(EncryptedPassword) + 1
Temp = Asc(Mid(EncryptedPassword, _
Counter, 1)) Xor (10 - Number)
If Counter Mod 2 = 0 Then 'see if even
Temp = Temp + Number
Else
Temp = Temp - Number
End If
Password = Password & Chr$(Temp)
Counter = Counter + 1
Loop
DecryptPassword = Password
End Function