首页 > 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的输入变量方法

分享到: 收藏
评论排行