python进阶(23)用Python实现AES_ECB_PKCS5加密

python进阶(23)用Python实现AES_ECB_PKCS5加密前言AES加密的模式有很多种,下面来介绍ECB模式的加密解密importbase64fromCrypto.CipherimportAESclassAESECB:def__init

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

AES加密的模式有很多种,下面来介绍ECB模式的加密解密

import base64
from Crypto.Cipher import AES


class AESECB:
    def __init__(self, key):
        self.key = key  # 加密密钥
        self.mode = AES.MODE_ECB  # 设置为ECB模式
        self.bs = 16  # block size
        self.PADDING = lambda s: s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)

    def encrypt(self, text):
        generator = AES.new(self.key, self.mode)  # ECB模式无需向量iv
        crypt = generator.encrypt(self.PADDING(text).encode('utf-8'))
        crypted_str = base64.b64encode(crypt).decode('utf-8')
        return crypted_str

    def decrypt(self, text):
        generator = AES.new(self.key, self.mode)  # ECB模式无需向量iv
        decrpyt_bytes = base64.b64decode(text)
        meg = generator.decrypt(decrpyt_bytes).decode('utf-8')
        return meg[:-ord(meg[-1])]


if __name__ == '__main__':
    aes = AESECB('1234567890abcdef')
    print(aes.encrypt('111111'))
    print(aes.decrypt('rfTzn9WjsDFbK262m0k4xg=='))

结果:

rfTzn9WjsDFbK262m0k4xg==
111111
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166053.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • rtmp/rtsp/hls公网真正可用的测试地址

    rtmp/rtsp/hls公网真正可用的测试地址相信大家在调试播放器的时候,都有这样的困惑,很难找到合适的公有测试源,以下是大牛直播SDK(GitHub地址)整理的真正可用的直播地址源。其中,rtmp和rtsp的url,用我们播放器验证通过,hls的地址,用vlc验证通过。1.RTMP协议直播源香港卫视:rtmp://live.hkstv.hk.lxdns.com/live/hks(目前不可用,hks1、hks2可用)这个r…

    2022年5月10日
    503
  • OpenCV人脸识别的原理 .

    OpenCV人脸识别的原理 .在之前讲到的人脸测试后,提取出人脸来,并且保存下来,以供训练或识别是用,提取人脸的代码如下:voidGetImageRect(IplImage*orgImage,CvRectrectInImage,IplImage*imgRect,doublescale){ //从图像orgImage中提取一块(rectInImage)子图像imgRect IplImage*res

    2022年5月9日
    38
  • 创客基地oDrive第一课 入门配置

    创客基地oDrive第一课入门配置第1部分硬件准备oDriveV3.6-56V主板 1块12V2.0A电源适配器 1个microUSB线 1条oDriveV3.6主板相关硬件资料可从Q群(732557609)下载。欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与

    2022年4月13日
    260
  • django和drf_类中的方法可以序列化么

    django和drf_类中的方法可以序列化么前言上一篇文章我们讲述了序列化,这篇就带大家一起来实现以下序列化Serializer我们使用序列化类Serializer,我们来看下源码结构,这里推荐使用pycharm左边导航栏的Structu

    2022年7月29日
    3
  • idea打不开,点击后无反应,多次重装无效解决办法。

    idea打不开,点击后无反应,多次重装无效解决办法。昨天更新了新版本idea,然后直接用激活码激活了,应用了旧版本的配置,当时用着没问题,后来删除掉了旧版本的安装目录,今天再打开idea时候多次点击无反应,多次重装无效,然后开始寻找解决办法。百度之后很多人反映是idea64.exe.vmoptions和idea.exe.vmoptions文件中,当时激活成功教程时候加的激活成功教程文件路径找不到报错的原因,然而检查后发现并没有激活成功教程文件的路径,最后试着在idea…

    2022年8月30日
    3
  • biztalk什么意思_aide教程网

    biztalk什么意思_aide教程网BizTalk开发系列(二十六) 使用Web Service

    2022年4月21日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号