python对称加密AES的使用

news2024/11/24 11:05:15

python对称加密AES的使用

在这里插入图片描述

aes安装

pip install pycryptodome

加密库引用

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

完整代码

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


def AES_encrypt(data, key):
    # 密钥转换成bytes, 并补齐16位
    # aes要求密钥和数据是16的倍数,不然加密会报错
    key = pad(key.encode(), block_size=16)
    # 创建aes对象
    aes = AES.new(key, AES.MODE_ECB)
    # 将原始数据转换成bytes,并补齐16位,aes要求数据是16的倍数,不然加密会报错
    pad_data = pad(data.encode(encoding='utf-8'), block_size=16, style='pkcs7')
    # 加密
    encrypt_data = aes.encrypt(pad_data)
    # 将加密bytes进行base64编码,并转换成字符串
    encrypt_str = base64.encodebytes(encrypt_data).decode(encoding='utf-8')
    return encrypt_str


def AES_decrypt(encrypt_data, key):
    # 解密过程和加密过程相反
    key = pad(key.encode(), block_size=16)
    aes = AES.new(key, AES.MODE_ECB)
    b64_data = base64.decodebytes(encrypt_data.encode(encoding='utf-8'))
    # 解密
    decrypt = aes.decrypt(b64_data)
    # 去掉补齐位,并转换成字符串
    decrypt_str = unpad(decrypt, block_size=16, style='pkcs7').decode(encoding='utf-8')
    return decrypt_str


if __name__ == '__main__':
    passwd = '1234567890'
    src_data = 'python对称加密AES的使用'
    encrypt_res = AES_encrypt(src_data, passwd)
    print(encrypt_res)
    src_data = AES_decrypt(encrypt_res, passwd)
    print(src_data)
    pass

测试结果

R1gH/LPQwUGZ+fZZcmAcsWuKfKRhgrVU0qhsB0tyLw0=

python对称加密AES的使用

参考

AEA加密解密知识参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

带你玩转OpenHarmony AI-基于海思NNIE的AI能力自定义

简介相信大家从玩转OpenAtom OpenHarmony(简称“OpenHarmony”)AI系列专题的其他文章中,已经拓展了OpenHarmony AI在智慧出行、智慧办公等多场景下的AI自动检测、识别和判断的新体验,对于OpenHarmony平台上的AI开发有了一定认识。…

通过事件总线EventBus/AsyncEventBus进行JAVA模块解耦 (史上最全)

事件总线在 进行JAVA模块解耦 ,价值巨大 实际开发中,常常 通过事件总线EventBus/AsyncEventBus进行JAVA模块解耦 , 比如,在顶级开源组件 hotkey的源码中, 就多次用到 EventBus/AsyncEventBus进行JAVA模块解耦 所以&am…

71、AdaNeRF: Adaptive Sampling for Real-time Rendering of Neural Radiance Fields

简介 官网:https://thomasneff.github.io/adanerf/ 新的双网络架构,它采用正交方向,通过学习如何最好地减少所需样本点的数量,将网络分为联合训练的 sample 和 shading 网络,训练方案在每条射线上采用固定的样本位置…

Nginx 高级篇

文章目录Nginx 高级篇一、 负载均衡1、 负载均衡概述2、 处理方式2.1 用户手动选择2.2 DNS 轮询2.3 四 / 七层负载均衡3、 七层负载均衡3.1 七层负载均衡指令3.1.1 upstream3.1.2 server3.2 实现流程3.3 负载均衡的状态3.3.1 down3.3.2 backup3.3.3 max_conns3.3.4 max_fails &…

Docker前世今生

文章目录Docker背景Docker历史docker 理念Docker能做什么虚拟机的缺点容器虚拟化技术Docker学习途径Docker背景 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发运维之间的协作我们需要 关心很多东西,这也是…

ChatGPTAPI Key申请教程

ChatGPTAPI Key申请教程 一、API Key申请使用 在浏览器打开网址:https://openai.com/api/ 等待网页加载完成后,点击右上角 LOG IN 进入登录界面 进入登录界面后,依次输入注册的邮箱–Continue–输入密码–Continue,完成登录&…

< CSS小技巧:filter滤镜妙用>

文章目录👉 前言👉 简述👉 基本语法及案例》语法简述》案例👉 拓展1. drop-shadow 更加智能的阴影效果2. 网页置灰3. 元素强调、高亮4.节省空间,提高网页加载速度👉 具体案例网页参考文献往期内容 &#x1…

如何有效进行团队建设:从关注事到关注人

咱打工人都想趁着年终总结这个契机,拿着工作数据跟领导们提涨薪!但是入行没多久的社畜们却没有这个底气,虽累但没结果(暗指身兼数职的项目经理小白们),主要是觉得自己的工作成绩不够优秀。这几天办公室的项…

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

摘要 我们为元学习提出了一个算法是模型无关model−agnosticmodel-agnosticmodel−agnostic. 在某种意义上,其与用梯度下降训练的模型是兼容的,可以应用在大量不同的学习问题上。包括:分类、回归、和加强学习。 元学习的目标是正在学习任务…

TAZ生成实践(Intel芯片Mac Python 3.7.9)

参考文章 https://blog.csdn.net/weixin_42632778/article/details/115164518 TAZ生成 https://zhuanlan.zhihu.com/p/343576683 使用ArcGIS实现线转栅格 https://pro.arcgis.com/zh-cn/pro-app/latest/tool-reference/conversion/polyline-to-raster.htm ArcGIS Pro 折线转栅格…

第②篇 Spring IoC——容器

Spring最成功的是其提出的理念,而不是技术本身。 概念 Spring所依赖的两个核心理念: 一个是控制反转(IoC)。另一个是面向切面编程(Aspect Oriented Programming,AOP)。 IoC是Spring的核心&am…

JS入门到精通详解(1)

JavaScript概述(需要记)什么是javascript?是一门(基于对象)和(事件驱动)的(脚本语言)。js诞生于哪一年?哪个公司?谁?第一个名字叫什么?1995年 网景 布兰登 l…

【Python】type、isinstance、issubclass详解

type type方法有两种重载形式: type(o: object);type(name: str, bases:Tuple[type, ...], dict:Mapping[str: Any], **kwds) 使用第一种重载形式的时候,传入一个【object】类型,返回一个【type】对象,通常与object…

解决使用element-plus时使用el-select-v2组件时,选中后无法移除focus的状态的方法。

我们可以使用element-ui-plus的el-select-v2的组件&#xff0c;实现复合搜索和下拉框的功能。 使用如下模块&#xff1a; <template><el-select-v2 v-model"value" filterable :options"options" placeholder"Please select"visibleCha…

爸妈记性变差怎么办?

记不住事的时候&#xff0c;我们总会自嘲“老了&#xff0c;脑子不好使了”。记忆力总是和年龄挂钩的&#xff0c;所以很多子女听到父母这样说&#xff0c;也不会放在心上。但有时&#xff0c;记性变差不一定因为年龄&#xff0c;还有可能是患病的前兆。当父母出现频繁忘事的情…

zerotier虚拟网络配置,局域网与外网如同局域网一样访问。

zerotier:可以搭建用于自己的虚拟网络&#xff0c;经过授权连接成功之后彼此都在同一网段&#xff0c;可以像在局域网一样互相访问。 1.创建zerotier账户 2.创建网络&#xff08;Create A Network&#xff09;并记住网络标识&#xff08;NETWORK ID&#xff09; 一、openwrt设…

中华财险进击数字化

本文来源 / 瞭望 中华联合财产保险股份有限公司&#xff08;下称中华财险&#xff09;&#xff0c;是一家 36 年的老牌国有保险公司&#xff0c;全国营业网点超过 2900 个。近年来&#xff0c;中华财险在业务高速发展的同时&#xff0c;从难啃的硬骨头下手&#xff0c;重构核心…

Unity 之 Addressable可寻址系统 -- 可寻址系统面板介绍 -- 入门(二)

可寻址系统面板介绍 -- 入门&#xff08;二&#xff09;一&#xff0c;可寻址系统目录介绍1.2 创建分组1.2 目录介绍二&#xff0c;可寻址系统设置介绍2.1 Profile - 配置文件2.2 Catalog - 目录2.3 Content Update - 内容更新2.4 Downloads - 下载2.5 Build - 构建2.6 Build a…

【数据结构】5.6 树和森林

文章目录5.6.1 树的存储结构&#xff08;不是二叉树&#xff09;双亲表示法孩子表示法结构定义双亲孩子法孩子兄弟法5.6.2 二叉树的转换树与二叉树的转换将树转换成二叉树将二叉树转换成树森林与二叉树的转换森林转换成二叉树二叉树转换成森林5.6.3 树和森林的遍历树的遍历森林…

Nginx简介

一、什么是Nginx?Nginx是一个高性能的HTTP和反向代理Web服务器&#xff0c;同时也提供IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3/SMTP&#xff09;代理服务器。Nginx的特点是&#xff1a;占有内存少&#xff0c;并发能…