Python实现128-ECB 解密
ES ECB模式加解密
使用cryptopp完成AES的ECB模式进行加解密。
AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个。(8比特 == 1字节)
在CBC、CFB、OFB、CTR模式下除了密钥外,还需要一个初始化向IV。(ECB模式不用IV)
转载于:
下面代码有详细注释可以根据自己需求来进行加解密.
代码如下:
from Crypto.Cipher import AES as myaes
import base64
class AESUtil:
__BLOCK_SIZE_16 = BLOCK_SIZE_16 = AES.block_size #设置大小
def encryt(self,plant, key):
if isinstance(key,str):
key=key.encode('utf-8')
cipher = AES.new(key, AES.MODE_ECB)
x = AESUtil.__BLOCK_SIZE_16 - (len(plant) % AESUtil.__BLOCK_SIZE_16) #16字节对齐
if x != 0:
plant = plant + chr(0)*x #以zero方式补齐为16为
msg = cipher.encrypt(plant)
# msg = base64.urlsafe_b64encode(msg).replace('=', '')
msg = base64.b64encode(msg)
return msg
def decrypt(self,enStr, key, iv):
cipher = AES.new(key.encode(), AES.MODE_ECB) #创建ecb模式
# 要解密数据的时候我们事先数据已经经过base64编码过了. 所以这里解密成bytes进行解密.如果直接是bytes则不用这行代码了 所以这里需要先解码为bytes
decryptByts = base64.b64decode(enStr)
msg = cipher.decrypt(decryptByts)
return msg
if __name__ == "__main__":
key = "abcdefghiiiiiasd"
iv = ""
anc = AESUtil()
#blob文件是加密之后的二进制转为的base64的字符串.
with ope("blob", 'rb') as f:
data = f.read()
res = anc.decrypt(data, key,iv);
with open("blob1","wb") as w:
w.write(res)
作者:IBinary
坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功. 想学习,有问题请加群.群号:725864912(收费)群名称: 逆向学习小分队 群里有大量学习资源. 以及定期直播答疑.有一个良好的学习氛围. 涉及到外挂反外挂病毒 司法取证加解密 驱动过保护 VT 等技术,期待你的进入。
详情请点击链接查看置顶博客 https://www.cnblogs.com/iBinary/p/7572603.html
本文来自博客园,作者:iBinary,未经允许禁止转载 转载前可联系本人.对于爬虫人员来说如果发现保留起诉权力.https://www.cnblogs.com/iBinary/p/14892706.html
欢迎大家关注我的微信公众号.不定期的更新文章.更新技术. 关注公众号后请大家养成 不白嫖的习惯.欢迎大家赞赏. 也希望在看完公众号文章之后 不忘 点击 收藏 转发 以及点击在看功能. QQ群: