工作中常会需要让数据传输前进行加密处理。这次用到的是AES加密。AES加密中,需要注意到坑还是挺多的。对AES也进行了一番了解,发现里面的东西真的是注意的太多了。今天只是整理了一种简单的加密格式,工作中使用肯定是够了,想要了解根深的AES加密还是需要再找些资料学习一下。

  首先需要下载python的第三库Crypto:pip install Crypto

#!/usr/bin/env python
# -*- coding: utf-8 -*- from Crypto.Cipher import AES
import base64
import os BLOCK_SIZE = 16
PADDING = '\0' #文本补全方式
pad_it = lambda s: s+(16 - len(s)%16)*PADDING
key = '16bit' #key的长度必须为16的倍数
iv = ‘0000000000000000’ #偏移量 #使用aes算法,进行加密解密操作
#为跟java实现同样的编码,注意PADDING符号自定义
#加密
def encrypt_aes(sourceStr):
generator = AES.new(key, AES.MODE_CBC, iv) #MODE_CBC为加密模式
crypt = generator.encrypt(pad_it(sourceStr))
cryptedStr = base64.b64encode(crypt)
return cryptedStr #解密
def decrypt_aes(cryptedStr):
generator = AES.new(key, AES.MODE_CBC, iv)
cryptedStr = base64.b64decode(cryptedStr)
recovery = generator.decrypt(cryptedStr)
decryptedStr = recovery.rstrip(PADDING)
return decryptedStr sourceStr = 'password^*(&( 09-8ADF' print encrypt_aes(sourceStr)
print decrypt_aes(encrypt_aes(sourceStr))

对应的java加密方式看这里:https://www.cnblogs.com/aguncn/p/6069349.html

下面是AES加密的各个参数对应值

最新文章

  1. nginx的ngx_http_request_t结构体
  2. 【转】Linux学习之路--启动VNC服务
  3. js中加密及设置cookie
  4. 详解C# 迭代器[转]
  5. Animation Spinner【项目】
  6. Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例
  7. 解决 jsp eclipse异常 【The import javax.servlet cannot be resolved】
  8. Raphael Js矢量库API简介:
  9. selenium python grid
  10. DevOps之三 Git的安装与配置
  11. Django学习之八:forms组件【对form舒心了】
  12. groovy 知识集锦
  13. 执行原生SQL语句的方式
  14. IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置
  15. unity, 在image effect shader中用_CameraDepthTexture重建世界坐标
  16. js时间与时间戳互相转换
  17. DDMS 使用方法
  18. 蓝桥杯历届试题 危险系数(dfs或者并查集求无向图关于两点的割点个数)
  19. Rookey.Frame之系统初始化
  20. hdu5411 CRB and Puzzle[矩阵优化dp]

热门文章

  1. .netcore 简单使用ElasticSearch
  2. vim-配置教程+源码
  3. Mybatis 批量更新遇到的小问题
  4. C#循环判断密码
  5. Jquery禁用DIV鼠标右键
  6. ubuntu12.04 安装lamp <1>
  7. TextView之富文本
  8. docker学习汇总
  9. linux中ugo权限管理(chmod/chown)
  10. Ceph 状态报警告 pool rbd has many more objects per pg than average (too few pgs?)