python加密模块使用,aes128,ecb模式

#!/usr/bin/python
# -*- coding:utf-8 -*-
from Crypto.Cipher import AES
import binascii
import re

#def print_bytes():

pattern1 = '[0-9a-fA-F]{2}'	

s1 = 'CE 67 38 7C 3A 4F A2 09 82 DB D5 82 2E 04 72 A5 E3 AD F5 F3 5C 9C BF 2C F4 77 E3 C3 59 6A C2 B0'

k1 = 'AA AA BB BB AA AA BB BB AA AA BB BB AA AA BB BB'
m = re.compile(pattern1)

list1 = re.findall(pattern1,s1)
print list1
list2 = [0 for i in range(2+len(list1))]
#print list2
s2 = ''
s_key=''
s_iv=''

for i in range(len(list1)):
	s2+= chr(int(list1[i],16))

#补零操作	
length = ((len(list1) + 15)/16)*16
	
count = len(list1)
if count < length:
	add = (length-count)
	#\0 backspace
	s2 = s2 + ('\0' * add)
elif count > length:
	add = (length-(count % length))
	s2 = s2 + ('\0' * add)
			
print binascii.b2a_hex(s2)

list1 = re.findall(pattern1,k1)
#key
for i in range(len(list1)):
	s_key+=chr(int(list1[i],16))
#iv	
for i in range(16):
	s_iv+=chr(0)	
	
print binascii.b2a_hex(s_key)

key = '1234567812345678'
iv = '1234567812345678'
generator = AES.new(s_key, AES.MODE_ECB, s_iv)

recovery = generator.decrypt(s2)

print binascii.b2a_hex(recovery)

基本来自网上的例程.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值