Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def encrypt(plaintext, offset):
- ciphertext = ''
- for char in plaintext:
- if not char.isalpha():
- ciphertext += char
- continue
- if char.isupper():
- ciphertext += chr((ord(char) + offset - 65) % 26 + 65)
- else:
- ciphertext += chr((ord(char) + offset - 97) % 26 + 97)
- return ciphertext
- def decrypt(ciphertext, offset):
- plaintext = ''
- for char in ciphertext:
- if not char.isalpha():
- plaintext += char
- continue
- if char.isupper():
- plaintext += chr((ord(char) - offset - 65) % 26 + 65)
- else:
- plaintext += chr((ord(char) - offset - 97) % 26 + 97)
- return plaintext
- while True:
- resp = input("Do you want to (e)ncode or (d)ecode? [e/d]:")
- if resp not in ["e", "d"]:
- continue
- break
- mode_encrypt = True
- if resp == "d":
- mode_encrypt = False
- while True:
- resp = input("Do you want to use a random key? [y/n]:")
- if resp not in ["y", "n"]:
- continue
- break
- if resp == "y":
- key = random.randrange(1,25)
- print('random key value :', key)
- else:
- while True:
- try:
- key = int(input("What key would you like to use? Enter a number between 1 and 25:"))
- except:
- print('input is not an integer')
- continue
- if key < 1 or key > 25:
- print("Invalid key")
- continue
- break
- if mode_encrypt:
- plaintext = input("Enter your plaintext:")
- print('plaintext :', plaintext)
- ciphertext = encrypt(plaintext, key)
- print('ciphertext :', ciphertext)
- else:
- ciphertext = input("Enter your ciphertext:")
- print('ciphertext :', ciphertext)
- plaintext = decrypt(ciphertext, key)
- print('plaintext :', plaintext)
Advertisement
Add Comment
Please, Sign In to add comment