python m2crypt模块aes加密

 

  
  
  
  
  1. # -*- encoding: utf-8 -*-  
  2. from M2Crypto.EVP import Cipher  
  3. from M2Crypto import m2  
  4.  
  5. iv = '\0' * 16   #任意设置  
  6. passKey = "1234567812345678" 
  7. text = "defabcdeabcdef1231231231231231adfasdfsdfasdfasdfadfasdfasdfasdfasdfasdf" 
  8.  
  9. def encrypt(buf):  
  10.     #ecb 模式不受iv影响  
  11.     cipher = Cipher(alg='aes_128_ecb', key=passKey, iv=iv, op=1# 1 is encrypt  
  12.     # padding 有时设置为1  
  13.     cipher.set_padding(padding=m2.no_padding)  
  14.     v = cipher.update(buf)  
  15.     v = v + cipher.final()  
  16.     del cipher  #需要删除  
  17.  
  18.     out = ""  
  19.     for i in v:  
  20.         out += "%02X" % (ord(i))  
  21.     print out  
  22.  
  23.     return v  
  24.  
  25. def decrypt(buf):  
  26.     cipher = Cipher(alg='aes_128_ecb', key=passKey, iv=iv, op=0# 0 is decrypt  
  27.     cipher.set_padding(padding=m2.no_padding)  
  28.     v = cipher.update(buf)  
  29.     v = v + cipher.final()  
  30.     del cipher  #需要删除  
  31.     print v  
  32.     return v  
  33.  
  34. decrypt(encrypt(text))  

 有时加解密其他语言生成的数据, 需要给加密的buf补零到16字节, 并将padding设置为False

你可能感兴趣的:(职场,aes,休闲,m2crypt)