Overview

Vigenere Cipher

Basic Vigenere Cipher implementation.

Source Code

// 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'));

Result

Encrypted: HFNLP
On this page