On Mon, 2012-06-18 at 17:58 -0500, Lindsay Haisley wrote:
> FWIW, pursuant to Stephen's comments re. using encryption rather than
> hashing for passing recipient addresses in headers, I've attached a
> short Python script which puts short strings of data, such as an email
> address, into an AES cipher.

It looks as if the attachment got stripped.  Here's the script, based on
information at
http://www.codekoala.com/blog/2009/aes-encryption-python-using-pycrypto/


class AEScrypt:
        from Crypto.Cipher import AES
        from Crypto.Util import randpool
        import base64

        block_size = 16
        key_size = 32
        mode = AES.MODE_CBC
        
        def genkey(self):
                key_bytes = 
self.randpool.RandomPool(512).get_bytes(self.key_size)
                key_string = self.base64.urlsafe_b64encode(str(key_bytes))
                return key_string               

        def encrypt(self, plain_text, key_string):
                pad = self.block_size - len(plain_text) % self.block_size
                data = plain_text + pad * chr(pad)
                iv_bytes = 
self.randpool.RandomPool(512).get_bytes(self.block_size)
                encrypted_bytes = iv_bytes + 
self.AES.new(self.base64.urlsafe_b64decode(key_string), 
                                self.mode, iv_bytes).encrypt(data)
                return self.base64.urlsafe_b64encode(str(encrypted_bytes))

        def decrypt(self, cypher_text, key_string):
                key_bytes = self.base64.urlsafe_b64decode(key_string)
                encrypted_bytes = self.base64.urlsafe_b64decode(cypher_text)
                iv_bytes = encrypted_bytes[:self.block_size]
                encrypted_bytes = encrypted_bytes[self.block_size:]
                plain_text = self.AES.new(key_bytes, self.mode, 
iv_bytes).decrypt(encrypted_bytes)
                pad = ord(plain_text[-1])
                return plain_text[:-pad]

-- 
Lindsay Haisley       | "In an open world, who needs  
FMP Computer Services |    Windows or Gates"
512-259-1190          |
http://www.fmp.com    |

------------------------------------------------------
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Reply via email to