Python AES使用
2016-01-14 11:41
183 查看
#encoding:utf-8 """ 示例代码 easy_install install pycrypto pip install pycrypto 都不行 要源码安装https://www.dlitz.net/software/pycrypto/ 修改编译器C:\Python27\Lib\distutils\msvc9compiler.py中270行指定vc编译器 vcvarsall="E:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat" 本人的环境是vs2015 """ from Crypto.Cipher import AES from Crypto import Random import base64 BS = 16 pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) unpad = lambda s : s[0:-ord(s[-1])] """ android java python通用AES加解密算法 已测试成功 上例中的key是16位, 还可以是24 或 32 位长度, 其对应为 AES-128, AES-196 和 AES-256. 解密则可以用以下代码进行: """ if __name__== "__main__": bkey = "1234567890123456" print(bkey) raw="androidtest你好我来自中国"; raw = pad(raw) iv ="0102030405060708"; print("iv="+iv) cipher = AES.new(bkey, AES.MODE_CBC, iv ) print(len(raw)) print(raw) ciphertext= cipher.encrypt(raw) ciphertext_base64=base64.b64encode(ciphertext) print(ciphertext_base64) #保存密文到文件 给Java相互加解密 f = file('d:/aes.txt','w+') f.write(ciphertext_base64) f.close() #读文件 txt_base64=file('d:/aes.txt','r').read() print(txt_base64) enc=base64.b64decode(txt_base64) cipher = AES.new(bkey, AES.MODE_CBC, iv ) text=cipher.decrypt(enc); print(len(text)) print(text) print(text.encode("hex")) plaintext= unpad(text) print "%s" % plaintext print("解密java加密的密文"); java_base64=file('d:/aes_java.txt','r').read() print('java_base64='+java_base64) #每次都要调用cipher = AES.new(bkey, AES.MODE_CBC, iv ) enc=base64.b64decode(java_base64) cipher = AES.new(bkey, AES.MODE_CBC, iv ) java_plaintext=cipher.decrypt(enc); print(len(java_plaintext)) print(java_plaintext.encode("hex")) plaintext= unpad(java_plaintext) #怎么编码 print "%s" % plaintext
相关文章推荐
- Python爬虫学习笔记——防豆瓣反爬虫
- python学习一(Django完成helloworld)
- Python2.x与Python3.x的区别
- Python字符串
- python MySQLdb问题
- 用python编写daemon监控进程并自动恢复
- windows环境下安装python的mysqldb模块
- Python的安装
- python 内建函数
- 在Window平台下安装xgboost的Python版本
- 最受欢迎的15个Python开源框架
- python Lambda, filter, reduce and map
- 异步非阻塞IO的Python Web框架--Tornado
- Python if __name__ == "__main__" 的含义
- Python 包工具之间的关系
- iOS程序员如何使用python写网路爬虫
- python Django模板的使用方法
- python3.x与2.x区别
- python基础:python的局部变量和全局变量
- python基础之编写第一个python脚本