python实现AES算法
来源:互联网 发布:java 数字字符串排序 编辑:程序博客网 时间:2024/05/20 02:23
pycrypto库下载:http://pan.baidu.com/s/1nvNtCvB (python2.7的版本),直接安装就可以了
#!/usr/bin/python#-*- coding:utf-8-*-from Crypto.Cipher import AESfrom binascii import b2a_hex,a2b_hexclass aes():#自己实现了一个aes类,用于aes的加密和解密 def __init__(self,key,mode):#key为aes秘钥,mode为加密模式 self.key = key self.mode = mode def encrypt(self,text,count):#text的为要加密的文本或者二进制流,count为加密数据的长度 cryptor = AES.new(self.key,self.mode,b'0000000000000000') length = 16 if count < length: add = (length-count) #\0 backspace text = text + ('\0' * add) elif count > length: add = (length-(count % length)) text = text + ('\0' * add) self.cipherText = cryptor.encrypt(text) return b2a_hex(self.cipherText)#将内存中的数据已16进制字符串打印出来 def decrypt(self,cipherText):#cipherText类型为16进制字符串如:"fa0345da",一般为32个字节长度 cryptor = AES.new(self.key,self.mode,b'0000000000000000') plainText = cryptor.decrypt(a2b_hex(cipherText))#将秘钥转换为二进制流 return plainText#返回值为二进制流,因为有很多不可打印字符def main(): key = '1234567890123456' #秘钥的长度必须为16 cryptor = aes(key,AES.MODE_ECB)#这里选用的是ECB模式 msg = 'helloworld' #加密字符串 cipher = cryptor.encrypt(msg,len(msg)) #返回值是内存中的16进制字符串 print cipher plainText = cryptor.decrypt(cipher)#解密函数,秘钥在aes初始化的时候设置好了,aes是对称加密的,加密的秘钥和解密的秘钥是一样的 print plainTextif __name__=="__main__": main()
阅读全文
0 0
- python实现AES算法
- 【转】AES算法实现
- java实现AES算法
- C++实现AES算法
- C++实现AES算法
- C# 实现AES算法
- AES算法 Java实现
- AES算法实现分析
- AES密码算法的实现
- AES算法的JAVA实现
- AES密码算法的实现
- AES算法java实现浅析
- AES算法分析与实现
- AES算法分析与实现
- AES算法分析与实现
- AES算法分析与实现
- AES算法分析与实现
- 【php】 AES算法php实现
- 学习VB.net串口索引(-)
- 使用ab进行压力测试
- 01. JSP 概述
- 编写可维护的javascript(一):基本的格式化
- 关于C语言整型提升的讲解
- python实现AES算法
- JavaScript-闭包
- 执行 pip install dicom 出现 Cannot open D:\Program Files\Anaconda3\Scripts\pip-script.py 错误解决办法
- 使sql语句支持输入参数
- Nginx配置性能优化
- MYSQL学习笔记(十四)使用全文本搜索
- Spring整合threadPool+dubbo
- 网站如何集成markdown编辑器
- VR编辑器