Monday, July 17, 2023

Vigenere Cipher

def CaesarEncrypt(ch, shift):

  ch1 = ord(ch) + shift

  if ch1 > 122:

    ch1 -= 26

  return chr(ch1)


def CaesarDecrypt(ch, shift):

  ch1 = ord(ch) - shift

  if ch1 < 97:

    ch1 += 26

  return chr(ch1)


def VigenereEncrypt():

  global encryptedMessage

  for i in range(len(originalMessage)):

    if originalMessage[i] == ' ':

      encryptedMessage += ' '

      continue

    shift = ord(key[i%len(key)]) - ord('A'.lower())

    char = CaesarEncrypt(originalMessage[i], shift)

    encryptedMessage += char

  print(encryptedMessage)


def VigenereDecrypt():

  global decryptedMessage

  for i in range(len(encryptedMessage)):

    if encryptedMessage[i] == ' ':

      decryptedMessage += ' '

      continue

    shift = ord(key[i%len(key)]) - ord('A'.lower())

    char = CaesarDecrypt(encryptedMessage[i], shift)

    decryptedMessage += char

  print(decryptedMessage)


originalMessage = "attacking tonight"

encryptedMessage, decryptedMessage = "", ""

key = "OCULORHINOLARINGOLOGY".lower()

size = len(key)

VigenereEncrypt()

VigenereDecrypt()

No comments:

Post a Comment