python的AES加密解密,pythonAES加密解密,需要安装pythonCr
python的AES加密解密,pythonAES加密解密,需要安装pythonCr
需要安装pythonCrypto:```python
!/usr/bin/env python
-- coding: utf-8 --
from Crypto.Cipher import AESimport base64PADDING = '\0'
PADDING = ' '
pad_it = lambda s: s+(16 - len(s)%16)*PADDING
key = '1234567812345678'iv = '1234567812345678'source = 'Test String'generator = AES.new(key, AES.MODE_CBC, iv)crypt = generator.encrypt(pad_it(source))
cryptedStr = base64.b64encode(crypt)print cryptedStrgenerator = AES.new(key, AES.MODE_CBC, iv)recovery = generator.decrypt(crypt)print recovery.rstrip(PADDING)```
注意python下需要用'\0'来填充,如果是空格来填充,python加密得到的字符串会跟其他语言不同。另外注意generator在加密的 时候使用过,解密的时候需重新生成再解密,否则解密失败。最后得到的字符串,在python控制台看到尾部是多个NUL这样的东西,要这样 recovery.rstrip(PADDING)去除掉才是原始字符串。
可以看到aes加密的中间结果是byte[]类型,直接new String(byte[])会看不到有意义的中间结果,这里用的是base64,是因为各个语言都有这样的支持。在同个语言内,也有bytesToHexString这样的方式。
跨语言加解密的要求是:AES/CBC/ZeroPadding 128位模式,key和iv一样,编码统一用utf-8。不支持ZeroPadding的就用NoPadding.
相关内容
- python将png图片转换为jpeg图片,,如下代码使用PIL库将p
- python获得linux服务器的内存使用率,虚拟内存使用率,
- 获得进程内存使用量的Python脚本,进程python脚本,None
- python操作符重写,实现+操作符,python操作符,import str
- python中的虚函数,python函数,class Super:
- 抓取知乎日报内容在本地另存为txt文档,日报txt,#File
- 最美应用爬虫,应用爬虫,import reque
- 获取网页上图片的下载地址,获取图片下载地址,#!/us
- python和bash统计CPU利用率,pythonbash利用率,#!/usr/bin/p
- python 爬小说我梦见了欲望,,import urlli
评论关闭