题目过程为rc4加密
RC4加密:
RC4 算法非常简单:用从1~256个字节的可变长度密钥初始化一个256字节的状态矢量S,S的元素记为S[0],s[1],…,S[255],从始至终置换后的S包含从0~255的所有8比特数。对于加密和解密中应用的密钥流的产生,密钥流中的每个密钥k是由S中255 个元素按一定的方式选出一个元素而生成 每生成一个密钥k,S中的元素就被重新置
换一次。
虽然每一次的s盒都不一样,但是rc4为对称加密,加解密过程可逆,因此解密直接按原程序跑就可以(因为由流程可以看出只有最后一步异或操作是对字符串的加密,前面的操作均为对s盒的更改运算,而且最后一步异或也可逆)
注意最后base加解密为干扰操作没有用,join作用为将字符串以指定符号分隔,前面是空的所以也没有用
urllib.parse.quote()为url加密,解密函数为
urllib.parse.unquote()
脚本
falg:NSSCTF{REAL_EZ_RC4}