ceaser cypher

avgprogramerjoe 0 Tallied Votes 141 Views Share

This code takes a string a cyphers it by shifting it's position in the alphabet. I've gotten it so it can pretty much take paragraphs. It's quite neat to play with.
For example the above when shifted to 5, would be:
Ymnx htij yfpjx f xywnsl f hDumjwx ny gD xmnkynsl ny,x utxnynts ns ymj fqumfgjy= N,Aj ltyyjs ny xt ny hfs uwjyyD rzhm yfpj ufwflwfumx= Ny,x vznyj sjfy yt uqfD Bnym=

import string
numbers = ""
x = 0
while x < 11:
    numbers = numbers + str(x)
    x += 1
shift = int(raw_input("Pick shift key from 1-9"))
choice = raw_input("would you like to encode or decode?")
letters = string.ascii_letters + string.punctuation + numbers
word = (raw_input("Please enter text"))
print letters
encoded = ''
if choice == "encode":
    for letter in word:
        if letter == ' ':
            encoded = encoded + ' '
        else:
            x = letters.index(letter) + shift
            encoded = encoded + letters[x]
if choice == "decode":
    for letter in word:
        if letter == ' ':
            encoded = encoded + ' '
        else:
            x = letters.index(letter) - shift
            encoded = encoded + letters[x]
print encoded
vegaseat 1,735 DaniWeb's Hypocrite Team Colleague

Removed [ code][ inlinecode] ... [ /inlinecode][ /code] tags.

Note, you could use
letters = string.ascii_letters + string.punctuation + string.digits

ShawnCplus 456 Code Monkey Team Colleague

A caeser cypher with a shift of 13 is known as ROT13 just incase you didn't know that and it's the easiest cypher I know of to code besides an XOR

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.