22 lines
731 B
Plaintext
22 lines
731 B
Plaintext
Procedure.s CC_encrypt(text.s, key, reverse = 0)
|
|
;if reverse <> 0 then reverse the encryption (decrypt)
|
|
Protected i, *letter.Character, *resultLetter.Character, result.s = Space(Len(text))
|
|
|
|
If reverse: key = 26 - key: EndIf
|
|
If key < 1 Or key > 25: ProcedureReturn: EndIf ;exit if key out of range
|
|
|
|
*letter = @text: *resultLetter = @result
|
|
While *letter\c
|
|
Select *letter\c
|
|
Case 'A' To 'Z'
|
|
*resultLetter\c = ((*letter\c - 65 + key) % 26) + 65
|
|
Case 'a' To 'z'
|
|
*resultLetter\c = ((*letter\c - 97 + key) % 26) + 97
|
|
Default
|
|
*resultLetter\c = *letter\c
|
|
EndSelect
|
|
*letter + SizeOf(Character): *resultLetter + SizeOf(Character)
|
|
Wend
|
|
ProcedureReturn result
|
|
EndProcedure
|