1

Possible Duplicate:
Caesar's Cipher using python, could use a little help

def affine (a, b):
    for i in range(26):
        print chr(i+65) + ": " + chr (((a*i+b)%26)+65)

This is something I have come across. How can I use this with a message "Hello world" and encrypt it?

And also how to Decrypt a message?

Community
  • 1
  • 1

1 Answers1

0

A readable, though extense, way of doing it is this:

   def encript(message, offset):
       result = ""
       for letter in message:
           if letter.isalpha():
               new_letter = chr(ord(letter) + offset)
               if (new_letter > "Z" and letter.isupper()) or (new_letter > "z" and letter.islower()):
                    new_letter = chr(ord(new_letter) - 26)
           else:
               new_letter = letter
           result += new_letter
        return result

a one liner version could be written thus:

>>> encript = lambda x, offset: "".join(chr(ord(le) + ((offset - (26 if (ord(le.upper()) + offset > ord("Z") )  else 0 ) ) if le.isalpha() else 0))  for le in x )
>>> encript("IBM 9000", -1)
'HAL 9000'
jsbueno
  • 99,910
  • 10
  • 151
  • 209