首页 > 代码库 > AES CBC 128的实现
AES CBC 128的实现
原由
AES已经变成目前对称加密中最流行算法之一,AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据。
项目中需要使用AES对密码信息进行加密,由嵌入式设备使用C语言进行加密,通过服务器中转后,由Android APP完成解密。
个人自测使用python完成。
Python代码
1 import base64 2 import traceback 3 from Crypto.Cipher import AES 4 from Crypto import Random 5 from clint.textui import colored 6 class AESCipher: 7 def __init__( self, key ): 8 self.key = key 9 self.bs = 1610 self.iv = ‘1234567812345678‘11 12 def _pad(self, s):13 return s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)14 15 def _unpad(self, s):16 return s[:-ord(s[len(s)-1:])]17 18 def encrypt( self, raw ):19 raw = self._pad(raw)20 cipher = AES.new( self.key, AES.MODE_CBC, self.iv )21 return base64.b64encode( cipher.encrypt( raw ) )22 23 def decrypt( self, enc ):24 enc = base64.b64decode(enc)25 assert enc!=None26 cipher = AES.new(self.key, AES.MODE_CBC, self.iv )27 assert cipher!=None28 #return self._unpad(cipher.decrypt( enc))29 return cipher.decrypt(enc)30 31 if __name__=="__main__":32 aes=AESCipher(‘1234567812345678‘)33 34 try:35 plaintext = "1234qwer"36 encrypt_data =http://www.mamicode.com/ aes.encrypt(plaintext)37 print colored.green("encrypt: %s"%(encrypt_data))38 decrypt_data =http://www.mamicode.com/ aes.decrypt(encrypt_data)39 print colored.green("decrypt: %s"%(decrypt_data))40 except Exception,e:41 print e42 traceback.print_exc()43 del aes
作者
阿曾(zfpnuc@gmail.com)
AES CBC 128的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。