对称加密之---AES加密
2024-09-08 01:55:50
工作中常会需要让数据传输前进行加密处理。这次用到的是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加密的各个参数对应值
最新文章
- nginx的ngx_http_request_t结构体
- 【转】Linux学习之路--启动VNC服务
- js中加密及设置cookie
- 详解C# 迭代器[转]
- Animation Spinner【项目】
- Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例
- 解决 jsp eclipse异常 【The import javax.servlet cannot be resolved】
- Raphael Js矢量库API简介:
- selenium python grid
- DevOps之三 Git的安装与配置
- Django学习之八:forms组件【对form舒心了】
- groovy 知识集锦
- 执行原生SQL语句的方式
- IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置
- unity, 在image effect shader中用_CameraDepthTexture重建世界坐标
- js时间与时间戳互相转换
- DDMS 使用方法
- 蓝桥杯历届试题 危险系数(dfs或者并查集求无向图关于两点的割点个数)
- Rookey.Frame之系统初始化
- hdu5411 CRB and Puzzle[矩阵优化dp]