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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android常用加密方式

    Android常用加密方式加密解密简介加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。加迷解密分类分为不可逆和…

    2022年5月17日
    36
  • Php公众号40029,微信公众号网页授权产生 错误代码:40029 真正解决

    Php公众号40029,微信公众号网页授权产生 错误代码:40029 真正解决在做微信二次开发的时候,调用网站授权接口会遇到{‘errcode’:40029,‘errmsg’:‘invalidcode,hints:[req_id:0407ns44]’}这样的错误。这个问题网上有很多所谓的解决方法,某些也确实能解决,我在开发过程中也遇到相同问题,下面记录一下我的解决方法。网上很多文章说,微信服务器发起了2次“相同”的请求,第一次请求被其终止掉了,我验证了一下,确…

    2022年4月30日
    195
  • oracle 正则 x00-xff,xff(xff头注入)

    oracle 正则 x00-xff,xff(xff头注入)你好!\xff(十六进制转义序列,对应的十进制ASCII码是255,在扩展ASCII中)\xhh代表十六进制模式希望对你有所帮助,望采纳。一到二位十六进制数所代表的字符,是c的转义字符没见过这种正则,如果是[^\x00-\xFF]表示匹配Ascii码大于255的那些字符了a328846994的说法完全错误。’\xff’这个是合法的,表示扩展ASCII码为255的字符,xff表示16进制f…

    2022年6月23日
    117
  • 方舟gg修改器下载之后怎么操作_方舟手游GG修改器怎么改经验

    方舟gg修改器下载之后怎么操作_方舟手游GG修改器怎么改经验方舟手游gg修改器脚本是一款很奈斯的辅助器,这款软件是为游戏定制的,功能十分强大,一键获取全地图视野,无视丛草,精准射击!感兴趣的用户赶快体验吧!方舟手游gg修改器脚本介绍方舟手游gg修改器脚本是一款数据信息开展非常好的改动,最值得一提的是游戏玩家彻底不必担心会被检验或是封禁,能够说成十分的安全性了,安装文件也是十分的小,需要的游戏玩家快点儿参加进去,这款手机软件能够非常好的协助你提升手机游戏的体…

    2022年9月5日
    2
  • PHP+Ajax点击加载更多内容 -这个效果好,速度快,只能点击更多加载,不能滚动自动加载…

    PHP+Ajax点击加载更多内容 -这个效果好,速度快,只能点击更多加载,不能滚动自动加载…

    2021年10月30日
    45
  • ansible安装部署步骤

    目录Ansible概述1、关闭防火墙2、安装相关软件3、修改主机清单4、创建密钥对,进行远程连接5、将公钥上传到被监控端6、设置ssh免交互登录Ansible概述Ansible可以同时管理Redhat系的Linux,Debian系的Linux,以及Windows主机。管理节点只在执行脚本时与远程主机连接,没有特别的同步机制,所以断电等异常一般不会影响ansbile。ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、fun

    2022年4月6日
    61

发表回复

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

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