这里有新鲜出炉的 Python3 官方中文指南,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了 Python AES 加密模块用法, 结合具体实例形式分析了 AES 加密模块的相关使用技巧与注意事项, 需要的朋友可以参考下
本文实例讲述了 Python AES 加密模块用法。分享给大家供大家参考,具体如下:
AES 是新的一种加密模块。在上次介绍过在 C 语言中如何来 OpenSSL 中的 DES。这次我们来看看 Python 自带的库如何来使用 AES 来加解密。其实二者的原理还是非常像,只是说在 python 中来做这个事情会比 C 语言要简单点,但是比起 C#/Java 还是有点点啰嗦。在 C#/JAVA 这种语言中,对于加密的源数据的处理,padding 一般都会有完整的实现。我在上次 C 语言中也处理过这个问题。在 python 库中,也是需要自己来处理这个。
- from Crypto.Cipher import AES#padding算法BS = 16 pad = lambda s: s + (BS - len(s) % BS) * chr(0) unpad = lambda s: s[0 : -ord(s[ - 1])]#将字符串转换成二进制的buff块def parse_hex(hex_str) : l = int(math.ceil(len(hex_str) / 2)) buf = ''
- for i in range(0, l) : s = hex_str[(i * 2) : ((i + 1) * 2)] buf = buf + chr(int(s, 16)) return buf#解析加密的key key = parse_hex("68b329da9893e34099c7d8ad5cb9c940") iv = parse_hex("68b329da9893e34099c7d8ad5cb9c940")#新建一个AES的对象aes_obj = AES.new(key, AES.MODE_CBC, iv)#做字节对齐padding_zero = pad(raw_buf)#开始加密encrypt_buf = aes_obj.encrypt(padding_zero)#解密buff = aes_obj.decrypt(encrypt_buf)
这个代码中 padding 写的还是非常漂亮的。如果在 C 里面实现这个,还需要啰嗦写不少。
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
希望本文所述对大家 Python 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0719/335742.html