Basic Vigenere Cipher implementation.
// Basic Vigenere Cipher implementation.
function VigenereEncrypt(src, key : String) : String;
begin
const cOrdA = Ord('A');
src := UpperCase(src);
key := UpperCase(key);
var keyLen := Length(key);
var resIdx := 1;
for var i := 1 to Length(src) do begin
if src[i] in ['A'..'Z'] then begin
var srcShift := Ord(src[i]) - cOrdA;
var keyShift := Ord(key[(resIdx - 1) mod keyLen + 1]) - cOrdA;
Result += Chr(((srcShift + keyShift) mod 26) + cOrdA);
Inc(resIdx);
end else Result += src[i];
end;
end;
PrintLn('Encrypted: ' + VigenereEncrypt('HELLO', 'ABC'));
Encrypted: HFNLP