University-Docs/Documents/School/SEM 2/MI/OZ6/oef5.py

43 lines
1.2 KiB
Python

import string
"""
In cryptografie is caesar cipher een encryptietechniek
waarin elke letter in het alfabet vervangen wordt door
een letter die een aantal posities verder in het alfabet
staat. In dit geval implementeren we ROT-13, waarbij elke
letter dertien plaatsen opschuift. Een a zou bijvoorbeeld
een n worden. Schrijf hiervoor een encoder en decoder en
vertaal/codeer hiermee de volgende twee berichten:
Pnrfne pvcure? V zhpu cersre Pnrfne fnynq!
Gebruik voor deze opgave een dictionary!
"""
def build_shift_dict(shift):
alphabet = string.ascii_lowercase + string.ascii_uppercase
shifted_lower = string.ascii_lowercase[shift:] + string.ascii_lowercase[0:shift]
shifted_upper = string.ascii_uppercase[shift:] + string.ascii_uppercase[0:shift]
shifted_alphabet = shifted_lower + shifted_upper
return {key: value for key, value in zip(alphabet, shifted_alphabet)}
def apply_shift(shift, message):
dictionary = build_shift_dict(shift)
for letter in message:
for letter in dictionary.values():
print(letter)
message = "Pnrfne pvcure? V zhpu cersre Pnrfne fnynq!"
shift = 13
vertaling = apply_shift(shift, message)
print(vertaling)