api自动化之:python3实现AES&base64加密

前言:网上看了几篇关于python实现aes加密的文章,其中Crypto之类的库安装之后里面根本没有Cipher模块(from Crypto.Cipher import AES),翻了其它人的文章才知道,Crypto其实已经停止维护了。所以不要去装crypto,应该装pycryptodome。以下是我的环境:

python 版本:3.6.5

pip版本:21.1.3(如果版本低可以升级python3 -m pip install --upgrade pip 。注:我的电脑装载Python2和3两个环境,至于怎么让两个环境共存以后会介绍)

安装依赖库:pycryptodome

cmd执行:pip install pycryptodome

image.png

我的网络环境有点差,不过不要放弃,多试几次就好了。如果浪费的时间太多,就考虑pypi手动下载安装了,因为手动通过下载工具下载有断点续传的方式。 还好这次没有这么麻烦。环境搭建好了下面说实现:

#! /user/bin/evn python
# coding:utf-8
__author__ = 'julian'

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
import base64


def encryptedContent(data,key='abcdefghijklmnop'):
    '''
    key 表示密钥
    data 表示要加密的字符串
    ufr-8 转码的原因是python3默认字符类型是unicode
    mode 是加密类型
    pad 是补位长度和类型
    最后输出base64密文
    strip 去除回车
    '''
    key = key.encode('utf-8')
    data = data.encode('utf-8')
    data = base64.encodebytes(AES.new(key=key,mode=AES.MODE_ECB).encrypt(pad(data,16,style='pkcs7')))
    return data.decode('utf-8').strip()

print(encryptedContent('15400000000'))
print(encryptedContent('123456','soxkfuwjsjshxjfk'))

执行结果:
DBOrr5w0TI9eYlld5vGm3w==
I1b7CxtzsT6jSBcPMF1/2Q==

通过对比开发人员的代码,以及在线AES加密网站的算法,实现结果一致。可应用于接口参数处理。
AES的实际应用,主要在于约定。密钥,补位倍数,加密类型均需要约定。
比如有位移,甚至有可能最后的加密结果增加一层倒序排列,或者增加干扰字符,比如增加另外一个加密串放在前面,
参数到了后端,从第n位之后截取下来进行参数解码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容