[src = hackme] easy AES
题目描述
Can you encrypt things with AES?
Tips: What is symmetric cipher?
WP
题目给出一个压缩包,解压后是一段py代码。我们在代码行增加注释。
1 | import base64 |
整个过程就清晰了,分两个阶段:
首先输入一段明文,使用生产的c这个AES对象加密,要求加密结果为b’Good Plain Text!’,因此可反向思维,明文就是b’Good Plain Text!’基于加密对象c的解密结果。
第二个阶段使用第一个阶段的plain text作为密钥解密data,并写入到output.jpg文件中。
因此可以使用下面的结题脚本:
1 | import base64 |
[知识点]
本题考核对对称加密算法AES的理解以及python中密码学API的使用,遇到没有使用过的API查阅文档也是一个好习惯!
建议:本题其实不需要深入理解AES算法,但是AES算法是一个非常重要的对称加密算法,建议查阅密码学书籍进行深入理解,其实下面的API调用的参数就需要理解AES的工作模式(CBC),分组密码共有5种工作模式,这是其中一种,后面的IV的作用是什么?读者查阅资料来理解。
1 | c2 = AES.new(plain_text[::-1], mode=AES.MODE_CBC, IV=b'1234567887654321') |