CNS Practical-13

import math

# Encryption function
def encryptMessage(msg, key):
    cipher = [''] * key
    for col in range(key):
        pointer = col
        while pointer < len(msg):
            cipher[col] += msg[pointer]
            pointer += key
    return ''.join(cipher)

# Decryption function
def decryptMessage(cipher, key):
    numOfCols = math.ceil(len(cipher) / key)
    numOfRows = key
    numOfShadedBoxes = (numOfCols * numOfRows) - len(cipher)

    plain = [''] * numOfCols
    col = 0
    row = 0

    for symbol in cipher:
        plain[col] += symbol
        col += 1

        if (col == numOfCols) or (col == numOfCols - 1 and row >= numOfRows - numOfShadedBoxes):
            col = 0
            row += 1

    return ''.join(plain)

# Example usage
if __name__ == "__main__":
    message = "juifewwikewmfc"
    key = 5

    encrypted = encryptMessage(message, key)
    print(f"Encrypted: {encrypted}")

    decrypted = decryptMessage(encrypted, key)
    print(f"Decrypted: {decrypted}")

Leave a Comment

Your email address will not be published. Required fields are marked *

error: Content is protected !!
Scroll to Top