25 lines
604 B
Python
25 lines
604 B
Python
# Based on https://github.com/AllAlgorithms, python/algorithms/math/caesar_cipher.py
|
|
|
|
|
|
def encrypt(strng: str, key: int) -> str:
|
|
assert 0 < key <= 94
|
|
encrypted = ''
|
|
for x in strng:
|
|
indx = (ord(x) + key) % 256
|
|
if indx > 126:
|
|
indx = indx - 95
|
|
encrypted = encrypted + chr(indx)
|
|
return encrypted
|
|
|
|
|
|
def decrypt(strng: str, key: int) -> str:
|
|
assert 0 < key <= 94
|
|
decrypted = ''
|
|
for x in strng:
|
|
indx = (ord(x) - key) % 256
|
|
if indx < 32:
|
|
indx = indx + 95
|
|
decrypted = decrypted + chr(indx)
|
|
return decrypted
|
|
|
|
|