pythonAES加密CBC_ZeroPadding批量转换

提前准备好字典,一行一个,自行修改偏移vi和key

import base64
from Crypto.Cipher import AES



def AES_Encrypt(key, data):
    vi = '7B579877ECB01812'
    pad = lambda s: s + (16 - len(s) % 16) * chr(0)
    data = pad(data)
    
    cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, vi.encode('utf8'))
    encryptedbytes = cipher.encrypt(data.encode('utf8'))
    
    encodestrs = base64.b64encode(encryptedbytes)
   
    enctext = encodestrs.decode('utf8')
   
    return enctext

key = '7BAB2440978E8950'
#需要加密的字典路径
data = open('/root/passwd3.txt','r')
line = data.readlines()
for lines in line:
    AES_Encrypt(key, lines)
    enctext = AES_Encrypt(key, lines)
    #保存结果的路径
    AES1 = open('/root/AES.txt', 'a')
    AES1.write(enctext+'\n')
    AES1.close()





结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AES是高级加密标准(Advanced Encryption Standard)的缩写,是一种对称加密算法,被广泛用于保护网络通信和数据传输中的敏感信息。CBC是AES的一种工作模式,全称为Cipher Block Chaining,用于处理分组密码中的加密块。 在AES/CBC中,将明文按照指定的分组大小进行分块,每个分块的大小为128位(16字节)。然后,利用初始向量(Initialization Vector,IV),将第一个分组与一个随机生成的IV进行异或操作。接下来,将异或结果与密钥进行加密,生成密文。对于下一个分组,将上一个分组的密文与IV进行异或操作,然后再与密钥进行加密。以此类推,每个分组都与前一个分组的密文进行异或操作,并进行加密。 ZeroPadding指的是在明文不足一个分组大小时,用0来填充以达到分组大小的要求。这是为了满足AES算法要求明文长度必须是16字节的倍数。 AES/CBC/ZeroPadding的工作流程如下:首先,对明文进行ZeroPadding填充,并设定一个初始向量IV。然后,将填充后的明文分块,与IV进行异或操作,再与密钥进行加密,得到第一个密文块。对于后续的分块,将上一个密文块与IV进行异或操作,再与密钥进行加密。最后,将所有密文块连接起来,得到最终的密文。 使用AES/CBC/ZeroPadding可以保证数据传输的机密性和完整性。由于AES算法的强加密性和CBC模式的分块和异或操作,使得数据在传输过程中更加安全可靠。同时,ZeroPadding填充保证了明文长度的完整性,使得加密操作可以进行正确性验证。 总之,AES/CBC/ZeroPadding是一种常用的数据加密和保护机制,可以在网络通信和数据传输中有效地保护敏感信息的机密性和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水到渠成~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值