AEE加密解密

 from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex


class AesHandler(object):
    def __init__(self, key, iv, mode):
        self.key = key
        self.iv = iv
        self.mode = mode
        self.BS = AES.block_size  # Size of a data block (in bytes) 16
        self.pad = lambda s: s + (self.BS - len(s) % self.BS) * chr(
            self.BS - len(s) % self.BS)
        self.unpad = lambda s: s[0:-ord(s[-1])]

    def encrypt(self, text):
        text = self.pad(text)
        cipher = AES.new(self.key, self.mode, self.iv)
        cipher_text = cipher.encrypt(text)
        return b2a_hex(cipher_text)

    def decrypt(self, text):
        cipher = AES.new(self.key, self.mode, self.iv)
        plain_text = cipher.decrypt(a2b_hex(text))
        return self.unpad(plain_text.rstrip('\0'))


if __name__ == '__main__':
    key = 'zhyh37MmA67Ato%Z'
    iv = 'Q@p%TLoLCEMollMq'
    aes = AesHandler(key, iv, AES.MODE_CBC)
    e = aes.encrypt("in the wifi.com")
    print "加密:", e
    d = aes.decrypt(e)
    print "解密:", d
posted @ 2017-03-22 15:49  逍遥无名  阅读(459)  评论(0编辑  收藏  举报