首页 > IT技术 > python > 正文

AES算法的加密和解密
2016-11-29 10:23:38   来源:软件开发收藏网   评论:0 点击:

,提供了一部分有用的价值信息,可当初对这些毫无概念,就一步步读下去,经过一周多的反复练习,逐渐了解原理和规则,今日尝试修改,尝试修改几个key和变量值,竟然ok了。

 

 
返回结果值
 
经过近半月的折腾终于解决了python加密和解密的情况,之前一度的碰到,解密异常,string类型过程,一路百度和google过来。最后发现路错了。

起初已咨询了开发reny人员了解规则,提供了一部分有用的价值信息,可当初对这些毫无概念,就一步步读下去,经过一周多的反复练习,逐渐了解原理和规则,今日尝试修改,尝试修改几个key和变量值,竟然ok了。
奇迹都会出现的。继续加油。
接下来的是如何设计整个框架,如何使之更加快捷的运用起来。未来路还很长,需要继续奋斗!
 
 源码如下。注意key 和IV向量。
 
#!/bin/env python 
#-*- coding:utf8 -*- 

from Crypto.Cipher import AES 
import base64 


def aes_encode(text): 
    BS = AES.block_size 
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) 
    unpad = lambda s : s[0:-ord(s[-1])] 
    key = 'gua*nyuhuaxia*gkaifasunweis*heng' 
    iv = 'sun1we9is8he1ngw' 
    mode = AES.MODE_CBC 

    cipher = AES.new(key, mode, iv) 
    encrypted = base64.encodestring(cipher.encrypt(pad(text))) 
    return encrypted 


def aes_decode(text): 
    BS = AES.block_size 
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) 
    unpad = lambda s : s[0:-ord(s[-1])] 
    key = 'gua*nyuhuaxia*gkaifasunweis*heng' 
    iv = 'sun1we9is8he1ngw' 
    mode = AES.MODE_CBC 

    str = base64.decodestring(text) 
    cipher = AES.new(key, mode, iv) 
    plain = unpad(cipher.decrypt(str)) 
    return plain 

if __name__ == '__main__': 
    text = '6NFcmF8EX2s/REoGe+1tAg==' 
    print aes_decode(text)

相关热词搜索: aes android

上一篇:python中 中文的列表或字典乱码
下一篇:selenium 对js的输入变量方法

分享到: 收藏
评论排行